[20230104]Oracle too many parse errors PARSE ERROR.txt

来源:这里教程网 时间:2026-03-03 18:21:02 作者:

[20230104]Oracle too many parse errors PARSE ERROR.txt --//来自 https://jonathanlewis.wordpress.com/2017/10/06/12c-parse/ --//http://anuj-singh.blogspot.com/2022/12/oracle-too-many-parse-errors-parse-error.html --//这是我生产系统遇到的类似情况,从12.2c开始oracle分析出现错误超过100次,在alter文件中就有记录. --//我最近一直在优化一个项目,我发现orcle新版本提供这么简单发现写错sql语句,可惜开发团队没有充分利用这个特性. --//在alert文件记录了大量错误语句,当我提交要对方看看到底怎么回事的时候,总是没有下文. --//如果你的程序出现大量sql语句执行错误,你的业务逻辑如何保证是正确的. --//我们另外一个项目竟然在出现错误提示时,弹出的对话框按钮里面竟然提示是否可以继续执行,简直无语.如何保证这样的情况下业务 --//的逻辑是否正确.我们就遇到这样的情况,楼层的交换机停电,导致网络断开,因为在出现错误是可以不推出程序,导致业务逻辑发生错 --//误.这样的错误运维人员在后台修改数据非常危险,也很容易出错.而且这样的错误事后非常难查以及定位., --//后来我自己测试才发现,不这样设计这套软件根本没有无法正常运行下次,要不断的退出. --//只要进行鲁棒性测试,鼠标在界面上"乱点",就很容易出错. 1.环境: SCOTT@test01p> @ver1 PORT_STRING          VERSION    BANNER                                                                       CON_ID -------------------- ---------- ---------------------------------------------------------------------------- ------ IBMPC/WIN_NT64-9.1.0 12.2.0.1.0 Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production      0 2.测试脚本: $ cat tt2.txt declare         m1 number; begin         for i in 1..&&1 loop         begin                 execute immediate 'select count(*) frm dual' into m1;                 dbms_output.put_line(m1);         exception                 when others then null;         end;         end loop; end; / --//frm故意写错. 3.测试: SCOTT@test01p> set verify off SCOTT@test01p> @ tt2.txt 201 PL/SQL procedure successfully completed. --//alert记录如下: 2023-01-22T15:57:30.010417+08:00 TEST01P(3):----- PL/SQL Call Stack -----   object      line  object   handle    number  name 000007FF17A2A0C8         6  anonymous block 2023-01-22T15:58:17.560137+08:00 TEST01P(3):WARNING: too many parse errors, count=100 SQL hash=0x2f17e915 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TEST01P(3):PARSE ERROR: ospid=6312, error=923 for statement: 2023-01-22T15:58:17.561137+08:00 TEST01P(3):Select Count(*) frm dual TEST01P(3):Additional information: hd=000007FF17A257C0 phd=000007FF17A26F18 flg=0x28 cisid=81 sid=81 ciuid=81 uid=81 2023-01-22T15:58:17.562137+08:00 TEST01P(3):----- PL/SQL Call Stack -----   object      line  object   handle    number  name 000007FF17BCAB78         6  anonymous block TEST01P(3):WARNING: too many parse errors, count=200 SQL hash=0x2f17e915 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TEST01P(3):PARSE ERROR: ospid=6312, error=923 for statement: 2023-01-22T15:58:17.581138+08:00 TEST01P(3):Select Count(*) frm dual ----> //问题语句. TEST01P(3):Additional information: hd=000007FF17A257C0 phd=000007FF17A26F18 flg=0x28 cisid=81 sid=81 ciuid=81 uid=81 2023-01-22T15:58:17.582138+08:00 TEST01P(3):----- PL/SQL Call Stack -----   object      line  object   handle    number  name 000007FF17BCAB78         6  anonymous block

相关推荐