Oracleのエラーメッセージを確認するコマンド

この記事ではコマンドにてOracleのエラーメッセージを確認する方法を解説します。

 エラーメッセージを確認するコマンド

Oracleにはoerrというコマンドが用意されています。

このコマンドを使うとエラーメッセージの内容を確認することができます。

表示内容はエラーコードに対する原因と対応策になります。

インターネット環境が使えない状態でも使用できるため、急いで調べたい場合などにも便利です。


 使い方

下記のコマンドでエラー内容を確認することができます。

$ oerr ora <エラーコードの番号>

oerrは$ORACLE_HOME/binに存在するため、$ORACLE_HOMEへパスを通しておく必要があります。


 実行例

ORA-01017のエラーを調査してみます。

[oracle@XXXXXX ~]$ oerr ora 1017
01017, 00000, "invalid username/password; logon denied"
// *Cause:     An invalid username or password was entered in an
//             attempt to log on to Oracle. The username and password must be
//             the same as was specified in a GRANT CONNECT statement. If the
//             username and password were entered together, the format was:
//             username/password.
// *Action:    Enter a valid username and password combination in the
//             correct format.


oraエラーだけではなくtnsエラーなども確認することができます。

[oracle@XXXXXX ~]$ oerr tns 12154
12154, 00000, "TNS:could not resolve the connect identifier specified"
// *Cause:  A connection to a database or other service was requested using
// a connect identifier, and the connect identifier specified could not
// be resolved into a connect descriptor using one of the naming methods
// configured. For example, if the type of connect identifier used was a
// net service name then the net service name could not be found in a
// naming method repository, or the repository could not be
// located or reached.
// *Action:
//   - If you are using local naming (TNSNAMES.ORA file):
//      - Make sure that "TNSNAMES" is listed as one of the values of the
//        NAMES.DIRECTORY_PATH parameter in the Oracle Net profile
//        (SQLNET.ORA)
//      - Verify that a TNSNAMES.ORA file exists and is in the proper
//        directory and is accessible.
//      - Check that the net service name used as the connect identifier
//        exists in the TNSNAMES.ORA file.
//      - Make sure there are no syntax errors anywhere in the TNSNAMES.ORA
//        file.  Look for unmatched parentheses or stray characters. Errors
//        in a TNSNAMES.ORA file may make it unusable.
//   - If you are using directory naming:
//      - Verify that "LDAP" is listed as one of the values of the
//        NAMES.DIRETORY_PATH parameter in the Oracle Net profile
//        (SQLNET.ORA).
//      - Verify that the LDAP directory server is up and that it is
//        accessible.
//      - Verify that the net service name or database name used as the
//        connect identifier is configured in the directory.
//      - Verify that the default context being used is correct by
//        specifying a fully qualified net service name or a full LDAP DN
//        as the connect identifier
//   - If you are using easy connect naming:
//      - Verify that "EZCONNECT" is listed as one of the values of the
//        NAMES.DIRETORY_PATH parameter in the Oracle Net profile
//        (SQLNET.ORA).
//      - Make sure the host, port and service name specified
//        are correct.
//      - Try enclosing the connect identifier in quote marks.
//
//   See the Oracle Net Services Administrators Guide or the Oracle
//   operating system specific guide for more information on naming.