ヘッダーをスキップ
Oracle® Database PL/SQL言語リファレンス
11gリリース2 (11.2)
B56260-09
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

SQLERRMファンクション

SQLERRMファンクションは、エラー・コードに関連付けられているエラー・メッセージを戻します。


注意:

エラー・メッセージの言語は、NLS_LANGUAGEパラメータによって決まります。このパラメータの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

SQL文では、SQLERRMを起動できません。

ファンクションによってSQLERRMが起動され、そのファンクションの純正度を示すためにRESTRICT_REFERENCESプラグマを使用する場合、WNPSおよびRNPS制約は指定できません。


注意:

FORALL文をSAVE EXCEPTIONS句とともに使用しないかぎり、SQLERRMよりDBMS_UTILITY.FORMAT_ERROR_STACKを使用することをお薦めします。詳細は、「エラー・コードとエラー・メッセージの取得」を参照してください。

ここでのトピック

構文

sqlerrm_function ::=

sqlerrm_function.gifの説明が続きます
sqlerrm_function.gifの説明

セマンティクス

error_code

Oracle Databaseエラー・コードの値を持つ式。Oracle Databaseエラー・コードのリストは、『Oracle Databaseエラー・メッセージ』を参照してください。デフォルト: エラー・コードは、SQLCODEの現在の値に関連付けられています。

SQLCODEと同様に、error_codeのないSQLERRMは、例外ハンドラ内でのみ有効です。例外ハンドラの外側、またはerror_codeの値が0(ゼロ)の場合、SQLERRMはORA-0000を戻します。

error_codeの値が+100の場合、SQLERRMはORA-01403を戻します。

error_codeの値が+100以外の正の数値の場合、SQLERRMは次のメッセージを戻します。

-error_code: non-ORACLE exception

error_codeの値が負の数値で、その絶対値がOracle Databaseエラー・コードの場合、SQLERRMは、そのエラー・コードに関連付けられているエラー・メッセージを戻します。次に例を示します。

BEGIN
  DBMS_OUTPUT.PUT_LINE('SQLERRM(-6511): ' || TO_CHAR(SQLERRM(-6511)));
END;
/

結果:

SQLERRM(-6511): ORA-06511: PL/SQL: cursor already open

error_codeの値が負の数値で、その絶対値がOracle Databaseエラー・コードではない場合、SQLERRMは次のメッセージを戻します。

ORA-error_code: Message error_code not found;  product=RDBMS;
facility=ORA

次に例を示します。

BEGIN
  DBMS_OUTPUT.PUT_LINE('SQLERRM(-50000): ' || TO_CHAR(SQLERRM(-50000)));
END;
/

結果:

SQLERRM(-50000): ORA-50000: Message 50000 not found;  product=RDBMS;
facility=ORA

関連トピック

この章:

他の章:


関連項目:

Oracle Databaseエラー・メッセージおよびそれらに関する情報のリストは、『Oracle Databaseエラー・メッセージ』を参照してください。