Oracle その他

VARCHAR2 で4000バイトを超えるデータの使用について|Oracle MAX_STRING_SIZE

VARCHAR2 で4000バイト以上を定義したい

4000バイト以上の VARCHAR2 型を定義する方法

12c から4000バイト以上のデータでも VARCHAR2 型として格納できるようになった。

前提として、MAX_STRING_SIZEという最大値をコントロールするパラメタを、デフォルト値の STANDARD から EXTENDED に変更する必要がある。

これにより、4000バイト以上のデータ型でもVARCHAR2 型として(32767バイトまで)格納されるようになる。

MAX_STRING_SIZEパラメタの設定手順

  1. DBをシャットダウンする
  2. DBをアップグレードモードでスタートする
  3. パラメタを変更
  4. スクリプトを適用する
  5. DBをシャットダウンする
  6. DBを通常通り起動する
実行例

SQL> show parameter max_string_size;
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------------------
max_string_size                      string      STANDARD

SQL> shu immediate

SQL> startup upgrade

SQL> alter system set max_string_size=extended;

SQL> @?/rdbms/admin/utl32k.sql

SQL> shu immediate

SQL> startup

SQL> show parameter max_string_size;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_string_size                      string      EXTENDED

MAX_STRING_SIZE をデフォルト値に戻す方法?

MAX_STRING_SIZE をSTANDARD から EXTENDED に変更した場合、このパラメタを元に(STANDARDに)戻す方法は、バックアップからのリストア以外にないので注意が必要。

この記事が役に立ったという方は
ボタンをポチッとしてくれたら喜びます

-Oracle, その他
-, ,