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:
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
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
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.