A Error Output Method Better Than Sqlerrm
階層方エラーが起こった場合、根本的なエラーはSQLERRMで処理すると、わからなくなることがありえる。
DBMS_UTILITY.FORMAT_ERROR_STACKで処理すると安全である。
BEGIN RAISE NO_DATA_FOUND; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (DBMS_UTILITY.FORMAT_ERROR_STACK); END; / ORA-01403: no data found
DBMS_UTILITYサブプログラムの要約
| ACTIVE_INSTANCESプロシージャ | アクティブなインスタンスを戻します。 |
| ANALYZE_DATABASEプロシージャ | データベース内にあるすべての表、クラスタおよび索引を分析します。「推奨されないサブプログラム」も参照してください。 |
| ANALYZE_PART_OBJECTプロシージャ | 指定した表および索引を分析します。 |
| ANALYZE_SCHEMAプロシージャ | スキーマ内にあるすべての表、クラスタおよび索引を分析します。「推奨されないサブプログラム」も参照してください。 |
| CANONICALIZEプロシージャ | 指定した文字列を正規化します。 |
| COMMA_TO_TABLEプロシージャ | カンマで区切られた名前のリストを、名前のPL/SQL表に変換します。 |
| COMPILE_SCHEMAプロシージャ | 指定したスキーマ内にあるすべてのプロシージャ、ファンクション、パッケージおよびトリガーをコンパイルします。 |
| CREATE_ALTER_TYPE_ERROR_TABLEプロシージャ | ALTER TYPE文のEXCEPTION句で使用するエラー表を作成します。 |
| CURRENT_INSTANCEファンクション | 現在接続しているインスタンス番号を戻します。 |
| DATA_BLOCK_ADDRESS_BLOCKファンクション | データ・ブロック・アドレスのブロック番号部分を取得します。 |
| DATA_BLOCK_ADDRESS_FILEファンクション | データ・ブロック・アドレスのファイル番号部分を取得します。 |
| DB_VERSIONプロシージャ | データベースに関するバージョン情報を戻します。 |
| EXEC_DDL_STATEMENTプロシージャ | parse_stringでDDL文を実行します。 |
| FORMAT_CALL_STACKファンクション | 現行のコール・スタックをフォーマットします。 |
| FORMAT_ERROR_BACKTRACEファンクション | 現行のエラーのポイントから、エラーがキャッチされた例外ハンドラまでのバックトレースをフォーマットします。 |
| FORMAT_ERROR_STACKファンクション | 現行のエラー・スタックをフォーマットします。 |
| GET_CPU_TIMEファンクション | 現在のCPU時間を100分の1秒単位で戻します。 |
| GET_DEPENDENCYプロシージャ | 渡されたオブジェクトの依存関係を示します。 |
| GET_HASH_VALUEファンクション | 指定した文字列についてハッシュ値を計算します。 |
| GET_PARAMETER_VALUEファンクション | 指定したinit.oraパラメータの値を取得します。 |
| GET_TIMEファンクション | 現在の時間を100分の1秒単位で検出します。 |
| INVALIDATEプロシージャ | データベース・オブジェクトを無効化し、オプションでそのPL/SQLコンパイラのパラメータ設定を変更します。 |
| IS_CLUSTER_DATABASEファンクション | このデータベースがクラスタ・データベース・モードで実行しているかどうかを検出します。 |
| MAKE_DATA_BLOCK_ADDRESSファンクション | ファイル番号とブロック番号を指定して、データ・ブロック・アドレスを作成します。 |
| NAME_RESOLVEプロシージャ | 指定した名前を解決します。 |
| NAME_TOKENIZEプロシージャ | 指定した名前を解析するためにパーサーをコールします。 |
| PORT_STRINGファンクション | Oracleとオペレーティング・システムのバージョンを一意に識別する文字列を戻します。 |
| TABLE_TO_COMMAプロシージャ | 名前のPL/SQL表を、カンマで区切られた名前のリストに変換します。 |
| VALIDATEプロシージャ | 名前のPL/SQL表を、カンマで区切られた名前のリストに変換します。 |
Reference:
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/appdev.102/B19245-02/d_util.htm
また、DBMS_UTILITY.FORMAT_CALL_STACK は実行のスタックを表示できる。デバッグに役に立つ。
page_revision: 2, last_edited: 1255306537|%e %b %Y, %H:%M %Z (%O ago)





