2012-08-10 82 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