👻

【Oracle】ORAエラーだけ見れば十分だと思っていたら、実はSP2エラーもある...(体験談)

2024/02/09に公開

Oracleを触っていたある日のこと

ポチポチ...

SQL> spool test.log
      ...(省略)...
SQL> spool off

ポチポチ...

SQL> grep "^ORA-" test.log

ある日のこと...私が作業している様子を見ていた先輩社員がこう言った。

「ORAエラーだけ見てるの?それだけだと足りないよ。SP2とかも見なきゃ。」

えっ...と思った。ORAエラーの有無を確認すれば十分だと思っていたからだ。

話を聞いたところ、先輩社員は過去にこのエラー↓に出会ったらしい。

SP2-0027: 入力が長すぎます(> 2499文字)。この行は無視されました。

このエラーは、SQL*Plusで入力したコマンドの一行が2499byteを超えた場合に発生する。

SP2エラーはSQL*Plus関連のエラーであり、厄介なのは、grep "^ORA-" <ファイル名>のような確認方法では引っかからないことである。
実際にこのエラーが発生した現場では、「ORAエラーは出力されてないのに、なぜ実行がうまくいかないんだ...」という状況になったとのこと。

この話から学んだのは、ORAエラーが発生していなくても、Oracle Database(SQL*Plus)に問題が発生している可能性があるということだ。

ORAエラーさえ確認できれば大丈夫だと思っていた自分にとって、頭の中の引き出しが増えた経験になった。

おまけ

手っ取り早いSP2エラーはこれかな

SQL> set
SP2-0545: SETコマンドには引数が必要です。

Discussion