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エラーに注目して対処しましょう。