64 DBMS_ERRLOG
DBMS_ERRLOG
パッケージは、エラーの発生時に中断やロールバックではなく、DML操作を続行できるようにエラー・ロギング表を作成するプロシージャを提供します。これによって、時間およびシステム・リソースを節約できます。
この章のトピックは、次のとおりです:
参照:
DBMS_ERRLOG
の使用方法の詳細は、『Oracle Databaseデータ・ウェアハウス・ガイド』を、error_logging_clause
構文については、『Oracle Database SQL言語リファレンス』を参照してください。
64.1 DBMS_DIMENSIONのセキュリティ・モデル
このパッケージのセキュリティは、選択したユーザーまたはロールにこのパッケージのEXECUTE
権限を付与することで制御できます。EXECUTE
権限は、パブリックに付与されます。ただし、エラー・ロギング表を作成するには、元表またはビューへのSELECT
アクセス権、CREATE
TABLE
権限および目的の表領域に対する表領域割当て容量が必要です。
64.2 DBMS_ERRLOGサブプログラムの要約
DBMS_ERRORLOG
パッケージには、CREATE_ERROR_LOGプロシージャのサブプログラムが含まれます。
表64-1 DBMS_ERRLOGパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
DMLエラー・ロギングで使用するエラー・ロギング表を作成します。 |
64.2.1 CREATE_ERROR_LOGプロシージャ
このプロシージャは、DMLエラー・ロギング機能の使用に必要なエラー・ロギング表を作成します。
LONG
、CLOB
、BLOB
、BFILE
およびADT
データ・タイプは、この列ではサポートされていません。
構文
DBMS_ERRLOG.CREATE_ERROR_LOG ( dml_table_name IN VARCHAR2, err_log_table_name IN VARCHAR2 := NULL, err_log_table_owner IN VARCHAR2 := NULL, err_log_table_space IN VARCHAR2 := NULL, skip_unsupported IN BOOLEAN := FALSE);
パラメータ
表64-2 CREATE_ERROR_LOGプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
エラー・ロギング表の元表となるDML表の名前。完全修飾名( |
|
作成するエラー・ロギング表の名前。 デフォルトでは、DML表の名前の最初の25文字に、
|
|
エラー・ロギング表の所有者の名前。 |
|
エラー・ロギング表が作成される領域。指定しない場合は、DMLエラー・ロギング表を所有しているユーザーのデフォルトの表領域が使用されます。 |
|
デフォルトは |
例
まず、デフォルトの名前の生成を使用して、SH
スキーマにchannels
表のエラー・ロギング表を作成します。
次に、channels
表のすべての列を確認します。
SQL> DESC channels Name Null? Type --------------------------- ------- ----- CHANNEL_ID NOT NULL CHAR(1) CHANNEL_DESC NOT NULL VARCHAR2(20) CHANNEL_CLASS VARCHAR2(20)
最後に、生成されたエラー・ロギング表のすべての列を確認します。このパッケージによって作成される必須の制御列に注意してください。
SQL> DESC ERR$_CHANNELS Name Null? Type ----------------- ---- ----ORA_ERR_NUMBER$ NUMBER ORA_ERR_MESG$ VARCHAR2(2000) ORA_ERR_ROWID$ ROWID ORA_ERR_OPTYP$ VARCHAR2(2) ORA_ERR_TAG$ VARCHAR2(2000) CHANNEL_ID VARCHAR2(4000) CHANNEL_DESC VARCHAR2(4000) CHANNEL_CLASS VARCHAR2(4000)
制御列の詳細は、『Oracle Database管理者ガイド』を参照してください。