oracle – 为什么dbms_sql.parse包括带有绑定变量的错误PL / SQL
发布时间:2021-03-07 09:16:40 所属栏目:站长百科 来源:网络整理
导读:下面的PL / SQL块按预期失败: SQL declare 2 i int; 3 begin 4 i := dbms_sql.open_cursor; 5 dbms_sql.parse(i,'begin dontexist; dbms_output.put(''a''); end;',1); 6 dbms_sql.close_cursor(i); 7 end; 8 /declare*FOUT in regel 1:.ORA-06550: Regel 1
下面的PL / SQL块按预期失败: SQL> declare 2 i int; 3 begin 4 i := dbms_sql.open_cursor; 5 dbms_sql.parse(i,'begin dontexist; dbms_output.put(''a''); end;',1); 6 dbms_sql.close_cursor(i); 7 end; 8 / declare * FOUT in regel 1: .ORA-06550: Regel 1,kolom 7: PLS-00201: identifier 'DONTEXIST' must be declared. ORA-06550: Regel 1,kolom 7: PL/SQL: Statement ignored. ORA-06512: in "SYS.DBMS_SQL",regel 1120 ORA-06512: in regel 5 由于我没著名为DONTEXIST的措施.我的题目是为什么下一个PL / SQL块乐成完成? SQL> declare 2 i int; 3 begin 4 i := dbms_sql.open_cursor; 5 dbms_sql.parse(i,'begin dontexist; dbms_output.put(:a); end;',1); 6 dbms_sql.close_cursor(i); 7 end; 8 / PL/SQL-procedure is geslaagd. 区别在于行使bind变量而不是常量,但我想知道为什么这会发生影响. 这是Oracle 12.1.0.2 办理要领看起来理会只是具有绑定的匿名块的语法,而且完备的语义搜查被推迟到执行.不外,这不是我们想要的举动以是Bug 26669757提出来了. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读