在PL/SQL末尾加上斜杠会导致statement.execute()返回错误

3
执行pl/sql时,我遇到了一个错误:
ORA-06550: line 1, column 316: PLS-00103: Encountered the symbol "/" The symbol "/" was ignored. 

PLSQL例子:

DECLARE
   SQL1   VARCHAR2 (1500);
   SQL2   VARCHAR2 (1500);
BEGIN
   SQL1   := 'INSERT INTO das_html_caption VALUES (''test_test'')';
   SQL2   := 'DELETE FROM das_html_caption where wording = ''test_test''';

   EXECUTE IMMEDIATE SQL2;

   EXECUTE IMMEDIATE SQL1;

   EXECUTE IMMEDIATE SQL2;

   COMMIT;
END;
/

Java:

Statement statement = dbConnection.createStatement();
ResultSet rs = null;
boolean ret = statement.execute( sql.getValue() );

这是一个正确的错误吗?还是我做错了什么?
谢谢。
2个回答

8
斜杠(/)是通过交互式环境(如SQL * Plus)执行匿名块的方式。如果您通过Java调用执行此块,则不需要终止斜杠符号。

2

找到了答案。必须向谷歌提交更加复杂的请求 :)

如消息所示,编译器不希望遇到符号“/”,因此只需将其删除即可。很简单。让我解释一下。在使用sqlplus或sqldev中的SQL工作表时,最好将PL / SQL块附加上斜杠。然而,在使用过程编辑器(sqldev本地)时,您需要将其删除。不知道为什么他们制定了这一套规则,但在他们放松规则之前,我们必须遵守它们;-)

http://forums.oracle.com/forums/thread.jspa?threadID=519670


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接