2012-08-10 41 views
0

執行在SQL Developer中下面的腳本(F5):GRANT無法執行中創建的SQL開發功能腳本

將創建功能,但嵌入授權線路的功能(使其在一個無效的狀態),而不是實際上對函數執行GRANT。

但是,如果它在不同的SQL Developer窗口/會話中執行,GRANT將按預期工作。

這工作,如果在SQL執行* Plus的預期:

CREATE OR REPLACE FUNCTION "FOO"."BAR" 
... 
END BAR; 
/

GRANT EXECUTE ON "FOO"."BAR" TO PUBLIC; 
/

這句法不會SQL開發工作。

有沒有一種方法可以在SQL Developer中正確執行這些命令?

回答

0

嘗試使用在SQL Developer中斜線過,就像在sqlplus

CREATE OR REPLACE FUNCTION "FOO"."BAR" 
... 
END BAR; 
/

GRANT EXECUTE ON "FOO"."BAR" TO PUBLIC; 
/
+0

我都嘗試「運行腳本」和「運行語句」。兩者都導致'FUNCTION BAR編譯警告:執行完成並帶有警告「。 – craig 2012-08-10 13:11:49

+0

@craig:你在'END BAR;'和'GRANT'之間有'/'(斜槓)嗎? – schurik 2012-08-10 13:15:20

+0

呃。我在同一行上有'; /'。如果'/'在它自己的行上,腳本編譯。 – craig 2012-08-10 13:21:38