oerrでOracleエラーメッセージ確認

Oracleにはoerrというツールが付属しており、これを使うとOracleのエラーコード毎に、その意味が確認できる。Oracleのエラーは複合的な原因によるものが多いので必ずしもこれ一発で原因に辿り着ける可能性は低いが、ちょっとした確認には十分役に立つコマンドなので是非覚えておきたい。ちなみにMySQLでは「perror」というツールがこれとよく似ている(参考:perrorでMySQLエラーメッセージ確認)。

  • ツールの場所を確認


[oracle@shibainu55 ~]$ env | grep ^ORA
ORACLE_SID=SHIBA10G
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/10.2.0/db_1
[oracle@shibainu55 ~]$ which oerr
~/product/10.2.0/db_1/bin/oerr

  • 使い方(コマンドusageの表示)


[oracle@shibainu55 ~]$ oerr
Usage: oerr facility error

Facility is identified by the prefix string in the error message.
For example, if you get ORA-7300, "ora" is the facility and "7300"
is the error. So you should type "oerr ora 7300".

If you get LCD-111, type "oerr lcd 111", and so on.

  • 使用例はこんな感じ。よく見かけるORA-01555エラーで試してみる


[oracle@shibainu55 ~]$ oerr ora 1555
01555, 00000, "snapshot too old: rollback segment number %s with name \"%s\" too small"
// *Cause: rollback records needed by a reader for consistent read are
// overwritten by other writers
// *Action: If in Automatic Undo Management mode, increase undo_retention
// setting. Otherwise, use larger rollback segments