私
VARCHAR2 で4000バイト以上を定義したい
4000バイト以上の VARCHAR2 型を定義する方法
12c から4000バイト以上のデータでも VARCHAR2 型として格納できるようになった。
前提として、MAX_STRING_SIZEという最大値をコントロールするパラメタを、デフォルト値の STANDARD から EXTENDED に変更する必要がある。
これにより、4000バイト以上のデータ型でもVARCHAR2 型として(32767バイトまで)格納されるようになる。
MAX_STRING_SIZEパラメタの設定手順
- DBをシャットダウンする
- DBをアップグレードモードでスタートする
- パラメタを変更
- スクリプトを適用する
- DBをシャットダウンする
- 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に)戻す方法は、バックアップからのリストア以外にないので注意が必要。