GRANT不在SQL Developer的CREATE FUNCTION脚本中执行

时间:2012-08-10 12:47:24

标签: oracle oracle-sqldeveloper

在SQL Developer中执行以下脚本(F5):

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

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

将创建函数,但将GRANT行嵌入到函数中(导致它处于无效状态),而不是在函数上实际执行GRANT。

如果GRANT在不同的SQL Developer窗口/会话中执行,则GRANT将按预期工作。

如果在SQL * Plus中执行,则按预期工作:

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

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

此语法在SQL Developer中不起作用。

有没有办法以能在SQL Developer中正确执行的方式组合这些命令?

1 个答案:

答案 0 :(得分:0)

尝试在SQL Developer中使用斜杠,就像在sqlplus

中一样
CREATE OR REPLACE FUNCTION "FOO"."BAR"
...
END BAR;
/

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