Oracleエラー対応(ORA-00604):ORA-00604 発生時の対処方法について

現役DBAが解説-Oracleエラー対応
ORA-00604エラー「再帰SQLでエラーが発生しました」が発生した際の対処方法についてご紹介します。
1. エラーメッセージ
ORA-00604: 再帰SQLレベルstringでエラーが発生しました ORA-00604: error occurred at recursive SQL level string
2.事象
何らかの理由でSQLの実行エラーになった時、ORA-00604が発生します。
SQLエラーと表示されますが、SELECT/UPDATE/DELETEなどの実行時に起きるとは限らないため、注意が必要です。
また、必ず他のORAエラーと一緒に表示されます。
<例>
ORA-00604: error occurred at recursive SQL level 1 ORA-01578: ORACLE data block corrupted (file # 3, block # 1263) ORA-01110: data file 3: ‘/xxx/xxx.dbf’
3. 対処方法
一緒に出ている他のORAエラーに注目してください。
上記例の場合は、ORA-01578(データブロックの破損)とORA-01110(問題のあるデータファイル)が出ているため、データブロックの破損に対する対処(バックアップからのリストアなど)が有効です。
※ORA-01578については、下記の当社ブログをご参考にしてください。
●Oracleエラー対応(ORA-01578):ORA-01578発生時の対処方法について
4. 最後に
ORA-00604 が発生した場合には、一緒に出ている他のORAエラーに注目して対処しましょう。