Pages

Tuesday, July 21, 2020

WARNING: too many parse errors - Oracle 12.2 has a different way to alarm about failing SQL

Oracle 12.2 has a different way to alarm about failing SQL

Rather than fail the SQL with error message, as in an older oracle versions, Oracle is writing a WARNING about parsing a SQL statement to alert.log each time the SQL is executed

And a warning counter is advanced by 100

For example:

WARNING: too many parse errors, count=100 SQL hash=0x4c8ca22e
PARSE ERROR: ospid=13813, error=904 for statement:
2020-07-09T05:11:16.653942+00:00
INSERT INTO ...

WARNING: too many parse errors, count=200 SQL hash=0x4c8ca22e
PARSE ERROR: ospid=13813, error=904 for statement:
2020-07-09T05:12:16.597150+00:00
INSERT INTO ...

The actual error is here: error=904
Which is in this case ORA-00904 - Invalid identifier

This is might be quite confusing, since application is now not seeing any error while executing.

Another Example:
alert.log
2021-02-17T19:34:05.126304+00:00
WARNING: too many parse errors, count=82600 SQL hash=0xf5112286
PARSE ERROR: ospid=14663, error=604 for statement: 
2021-02-17T19:34:05.126406+00:00
MERGE into XXX
Additional information: hd=0x9e5afac0 phd=0x9f458c28 flg=0x110676 cisid=88 sid=88 ciuid=88 uid=88 sqlid=6zjj7hruj28n6
...Current username=PRT_MEOQQ_SPARX
...Application: JDBC Thin Client Action: 

Details re inside trc file:
 
igt_ora_14663.trc
-rw-r----- 1 oracle dba 2955331 Feb 17 19:28 igt_ora_14663.trc
kgscGet-exception: cur=0x7f4cfab81420 cob=0x7f4cfaaab028 err=604
KQRCMT: Write failed with error=1000 po=0x9d8ee970 cid=2
diagnostics : cid=2 hash=0x7bef3983 flag=0x2a
kgscGet-exception: cur=0x7f4cfab83450 cob=0x7f4cfaaa6a98 err=604

KQRCMT: Write failed with error=1000 stands for ORA-01000: maximum open cursors exceeded.