DBMS_MAX_STRING_SIZEパッケージ

DBMS_MAX_STRING_SIZEパッケージは、DBMS_MAX_STRING_SIZE初期化パラメータの値を確認または変更するためのインタフェースを提供します。

CHECK_MAX_STRING_SIZEファンクション

このファンクションは、MAX_STRING_SIZEパラメータを特定の値に更新できるかどうかを確認し、パラメータの更新を妨げる違反のリストを戻します。

構文

DBMS_MAX_STRING_SIZE.CHECK_MAX_STRING_SIZE(
       new_value    IN VARCHAR2)
RETURN DBMS_MAX_STRING_SIZE_TBL;

パラメータ

パラメータ 説明

new_value

設定する新しいMAX_STRING_SIZEパラメータ値を指定します。次の値のみ有効です:'STANDARD'。

使用上のノート

戻りリストが空の場合、違反はなく、MAX_STRING_SIZEの更新を実行できます。

SELECT * FROM TABLE(DBMS_MAX_STRING_SIZE.CHECK_MAX_STRING_SIZE('STANDARD'));
 
TYPE   OBJECT_OWNER OBJECT_NAME COLUMN_NAME    REASON                                       
------ ------------ ----------- -------------- ---------------------------------------------
COLUMN ADMIN        SALES       CUST_NOTES     Physical column exceeds STANDARD length limit   
1 rows selected.   

MODIFY_MAX_STRING_SIZEプロシージャ

このプロシージャは、MAX_STRING_SIZEパラメータの値を特定の値に更新します。

構文

DBMS_MAX_STRING_SIZE.MODIFY_MAX_STRING_SIZE(
          new_value    IN VARCHAR2);

ここで、user_accountはユーザー・アカウント名(スキーマ名)です。

パラメータ

パラメータ 説明

new_value

設定する新しいMAX_STRING_SIZEパラメータ値を指定します。次の値のみ有効です: 'STANDARD'

使用上のノート

  • Using DBMS_MAX_STRING_SIZE.MODIFY_MAX_STRING_SIZE is a one-way change that cannot be reverted. After a database is switched back to the STANDARD style of supporting a maximum length of 4000 bytes for the VARCHAR2, NVARCHAR2, and RAW data types, you cannot re-enable EXTENDED data types.

  • ADMINユーザーには、DBMS_MAX_STRING_SIZEに対するEXECUTE権限のWITH GRANT OPTION句が付与されます。Oracleでは、他のユーザーに対してこのパッケージに対するGRANT EXECUTEを実行することをお薦めします。

  • エラーORA-20000は、MAX_STRING_SIZEの更新を妨げるオブジェクトが存在する場合に発生します。

  • ADMINユーザーには、DBMS_MAX_STRING_SIZEに対するEXECUTE権限のWITH GRANT OPTION句が付与されます。Oracleでは、他のユーザーに対してこのパッケージに対するGRANT EXECUTEを実行することをお薦めします。

SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME = 'max_string_size';

NAME                 VALUE
max_string_size      EXTENDED


   BEGIN
     DBMS_MAX_STRING_SIZE.MODIFY_MAX_STRING_SIZE('STANDARD');
   END;
/ 


PL/SQL procedure successfully completed.

SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME = 'max_string_size';

NAME                 VALUE
max_string_size      STANDARD