2017-05-02 24 views
-2

为什么我们得到“ORA-01003:没有语句解析”错误?它的含义是什么?在哪种情况下可以生成此错误?如何使用SQL开发人员重现此错误?为什么我们得到ORA-01003:没有语句解析错误?它的意义是什么?在哪种情况下可以生成此错误?

+2

请显示您的代码 – Jens

+1

您是否尝试过搜索? – Aleksej

+0

我想重现这个错误使用数据库only.I没有写任何Java代码或SQL过程。 –

回答

3

如何使用sql开发者重现此错误?

像这样:

DECLARE 
    NO_STATEMENT_PARSED EXCEPTION; 
    PRAGMA EXCEPTION_INIT(NO_STATEMENT_PARSED, -1003); 
BEGIN 
    RAISE NO_STATEMENT_PARSED; 
END; 
/
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; 

您尝试打开一个游标,而无需解析之前任何声明。

相关问题