180 DBMS_WARNING

DBMS_WARNINGパッケージは、PL/SQL警告メッセージの動作を操作する方法を提供します。特に、PLSQL_WARNINGS初期化パラメータの設定を読み取って変更することによって、表示しない、表示する、またはエラーとして処理する警告の種類を制御できます。このパッケージは、現在のシステムまたはセッション設定の問合せ、変更、削除のためのインタフェースを提供します。

この章のトピックは、次のとおりです:

180.1 DBMS_WARNINGのセキュリティ・モデル

次のすべてのインタフェースで、scopeパラメータの値がSYSTEMの場合、ユーザーはALTER SYSTEM権限が必要です。

180.2 DBMS_WARNINGサブプログラムの要約

この表は、DBMS_WARNINGサブプログラムを示し、簡単に説明しています。

表180-1 DBMS_WARNINGパッケージのサブプログラム

サブプログラム 説明

ADD_WARNING_SETTING_CATプロシージャ

以前に指定したwarning_categoryの現在のsessionまたはsystemの警告設定を変更します。

ADD_WARNING_SETTING_NUMプロシージャ

以前に指定したwarning_numberの現在のsessionまたはsystemの警告設定を変更します。

GET_CATEGORYファンクション

メッセージ番号を指定し、カテゴリ名を戻します。

GET_WARNING_SETTING_CATファンクション

セッションの特定の警告カテゴリを戻します。

GET_WARNING_SETTING_NUMファンクション

セッションの特定の警告番号を戻します。

GET_WARNING_SETTING_STRINGファンクション

現在のセッションのすべての警告文字列を戻します。

SET_WARNING_SETTING_STRINGプロシージャ

以前の設定を新しい値と置換します。

180.2.1 ADD_WARNING_SETTING_CATプロシージャ

現在のセッションまたはシステムの警告設定をこのプロシージャで指定した値で変更できます。この値は、warning_categoryまたはwarning_valueの値が設定されていない場合、既存のパラメータに追加されるか、既存の値が上書きされます。

このファンクションをコールする効果は、現在のセッションまたはシステム設定の最後に指定したカテゴリに修飾子(ENABLE/DISABLE/ERROR)を追加するのと同じです。

構文

DBMS_WARNING.ADD_WARNING_SETTING_CAT (
   warning_category    IN    VARCHAR2,
   warning_value       IN    VARCHAR2,
   scope               IN    VARCHAR2);

パラメータ

表180-2 ADD_WARNING_SETTING_CATプロシージャのパラメータ

パラメータ 説明

warning_category

カテゴリの名前。有効な値は、ALLINFORMATIONALSEVEREおよびPERFORMANCEです。

warning_value

カテゴリの値。有効な値は、ENABLEDISABLEおよびERRORです。

scope

変更をセッション・コンテキストで実行するか、システム・コンテキストで実行するかを指定します。有効な値は、SESSIONまたはSYSTEMです。

180.2.2 ADD_WARNING_SETTING_NUMプロシージャ

現在のsessionまたはsystemの警告設定をこのプロシージャで指定した値で変更できます。値がすでに設定されている場合、既存の値が上書きされます。

このファンクションをコールする効果は、現在のセッションまたはシステム設定の最後に指定したカテゴリに修飾子(ENABLE/DISABLE/ERROR)を追加するのと同じです。

構文

DBMS_WARNING.ADD_WARNING_SETTING_NUM (
   warning_number      IN    NUMBER,
   warning_value       IN    VARCHAR2,
   scope               IN    VARCHAR2);

パラメータ

表180-3 ADD_WARNING_SETTING_NUMプロシージャのパラメータ

パラメータ 説明

warning_number

警告番号。有効な値はすべての有効な警告番号です。

warning_value

カテゴリの値。有効な値は、ENABLEDISABLEおよびERRORです。

scope

変更をセッション・コンテキストで実行するか、システム・コンテキストで実行するかを指定します。有効な値は、SESSIONまたはSYSTEMです。

例180-1 非推奨化の警告の有効化

この例では、DBMS_WARNINGパッケージを使用して、セッションでDEPRECATEプラグマ警告を有効にする方法を示しています。

BEGIN
  DBMS_WARNING.ADD_WARNING_SETTING_NUM (6019,
                                        'ENABLE',
                                        'SESSION');

  DBMS_WARNING.ADD_WARNING_SETTING_NUM (6020,
                                        'ENABLE',
                                        'SESSION');

  DBMS_WARNING.ADD_WARNING_SETTING_NUM (6021,
                                        'ENABLE',
                                        'SESSION');

  DBMS_WARNING.ADD_WARNING_SETTING_NUM (6022,
                                        'ENABLE',
                                        'SESSION');
END;

180.2.3 GET_CATEGORYファンクション

このファンクションは、メッセージ番号を指定し、カテゴリ名を戻します。

構文

DBMS_WARNING.GET_CATEGORY (
   warning_number  IN   pls_integer) 
RETURN VARCHAR2;

パラメータ

表180-4 GET_CATEGORYファンクションのパラメータ

パラメータ 説明

warning_number

警告メッセージ番号。

180.2.4 GET_WARNING_SETTING_CATファンクション

このファンクションは、現在のセッションの特定の警告カテゴリ設定を戻します。

構文

DBMS_WARNING.GET_WARNING_SETTING_CAT (
   warning_category    IN    VARCHAR2)
RETURN warning_value;

パラメータ

表180-5 GET_WARNING_SETTING_CATファンクションのパラメータ

パラメータ 説明

warning_category

カテゴリの名前。有効な値は、すべての有効なカテゴリ名(ALLINFORMATIONALSEVEREおよびPERFORMANCE)です。

180.2.5 GET_WARNING_SETTING_NUMファンクション

このファンクションは、現在のセッションの特定の警告番号設定を戻します。

構文

DBMS_WARNING.GET_WARNING_SETTING_NUM (
   warning_number      IN    NUMBER)
RETURN warning_value;

パラメータ

表180-6 GET_WARNING_SETTING_NUMファンクションのパラメータ

パラメータ 説明

warning_number

警告番号。有効な値はすべての有効な警告番号です。

180.2.6 GET_WARNING_SETTING_STRINGファンクション

このファンクションは、現在のセッションのすべての警告文字列を戻します。

構文

DBMS_WARNING.GET_WARNING_SETTING_STRING
 RETURN VARCHAR2;

使用上のノート

v$parameterまたはv$paramater2固定表に対するSELECTまたは READ権限を持たない場合、またはユーザー自身で警告文字列を解析し、変更して、SET_WARNING_SETTING_STRINGを使用して新しい値を設定する場合に、このファンクションを使用します。

180.2.7 SET_WARNING_SETTING_STRINGプロシージャ

このプロシージャは、以前の設定を新しい値に置き換えます。

警告文字列には、ALTER SESSIONまたはSYSTEM SET PLSQL_WARNINGSコマンドの発行時に、'='の右側に使用される同じ構文を使用して、カテゴリおよび警告番号が混在して含まれていてもかまいません。これはALTER SESSIONまたはALTER SYSTEMコマンドと同じ効果です。

構文

DBMS_WARNING.SET_WARNING_SETTING_STRING (
   warning_value   IN   VARCHAR2,
   scope           IN   VARCHAR2);

パラメータ

表180-7 SET_WARNING_SETTING_STRINGプロシージャのパラメータ

パラメータ 説明

warning_value

新しい値を構成する新しい文字列。

scope

変更をセッション・コンテキストで実行するか、システム・コンテキストで実行するかを指定します。有効な値は、SESSIONまたはSYSTEMです。