この章では、OceanBaseデータベースにおけるOracleテナントのエラーメッセージについて説明します。
適用対象
この内容はOceanBaseデータベースのOracleモードにのみ適用されます。
OceanBaseデータベースのシステムエラーコードの値の範囲は以下のとおりです:
上記のエラーメッセージはOracleのエラーメッセージと互換性があります。Oracleのエラーメッセージの詳細については、https://docs.oracle.com/en/database/oracle/oracle-database/21/errmg/を参照してください。
エラーメッセージの形式
OceanBaseデータベースのOracleテナントでは、エラーメッセージは「プレフィックス+数字コード」の形式で返されます。
Oracleデータベースと同様に、エラーがデータベースに起因する場合はORAで始まるエラーメッセージが返され、ストアドプロシージャに起因する場合はPLSで始まるエラーメッセージが返されます。
エラーメッセージの形式は以下のとおりです:
OBE-<err_num>:<err_msg>
PLS-<err_num>:<err_msg>
パラメータの説明:
err_numは、Oracleデータベースと互換性のあるエラーコードを表します。err_msgは、エラーメッセージを表します。
エラーメッセージ内の変数
エラーを特定して解決できるように支援するため、OceanBaseはエラーメッセージにパラメータを埋め込みます。これらのパラメータはパーセント記号(%)で表示されます。
例:
OBE-00910: specified length too long for column '%s' (max = %d byte)
上記のメッセージは実際には次のように表示される可能性があります:
OBE-00910: specified length too long for column 'fruit' (max = 32767 byte)
OBE-00600について
Oracleデータベースでは、OBE-00600は内部エラーを表し、Oracleプログラム例外に対するキャッチオール内部エラーメッセージです。これは、プロセスが低レベルまたは予期しないエラーに遭遇したことを示します。
OceanBaseデータベースのOracleテナントでは、Oracleと互換性のないエラーについてもこのエラーコードが返され、その形式は次のとおりです:
OBE-00600: internal error code, arguments: %d, %s
ここで、%dはOceanBaseデータベースのエラーコード、%sはOceanBaseデータベースのエラーメッセージを表します。