为什么我们得到" ORA-01003:没有语句被解析"错误?它是什么意思?在哪种情况下可以生成此错误?如何使用sql developer重现此错误?
答案 0 :(得分:3)
如何使用sql developer重现此错误?
像这样:
DECLARE
NO_STATEMENT_PARSED EXCEPTION;
PRAGMA EXCEPTION_INIT( NO_STATEMENT_PARSED, -1003 );
BEGIN
RAISE NO_STATEMENT_PARSED;
END;
/
答案 1 :(得分:2)
我不知道为什么有人会问这样的问题。
除了MT0的明显解决方案之外,您还可以使用此手动方式:
DECLARE
sqlStr VARCHAR2(1000);
cur INTEGER;
ret NUMBER;
BEGIN
sqlStr := 'DELETE FROM emp WHERE 1 = 0';
cur := DBMS_SQL.OPEN_CURSOR;
--DBMS_SQL.PARSE(cur, sqlStr, DBMS_SQL.NATIVE); --> required
ret := DBMS_SQL.EXECUTE(cur);
DBMS_SQL.CLOSE_CURSOR(cur);
DBMS_OUTPUT.PUT_LINE ( 'ret = ' || ret );
END;
您尝试打开游标而不解析之前的任何语句。