プロパティ | 説明 |
---|---|
パラメータ・タイプ |
文字列 |
構文 |
|
デフォルト値 |
|
変更可能 |
|
PDBで変更可能 |
はい |
基本 |
いいえ |
Oracle RAC |
複数インスタンスには、同じ値を使用する必要がある。 |
脚注1
ALTER SYSTEMはデータベースがUPGRADEモードの場合のみ使用し、この項で説明するようにその後にutl32k.sqlを実行してください。
MAX_STRING_SIZE
は、SQL内のVARCHAR2
、NVARCHAR2
およびRAW
データ型の最大サイズを制御します。
STANDARD
は、Oracle Database 12cより前のOracle Databaseリリースの長さ制限が適用されることを意味します(たとえば、VARCHAR
2およびNVARCHAR2
には4000バイト、RAW
には2000バイト)。
EXTENDED
は、Oracle Database 12cで導入された32767バイトの上限が適用されることを意味します。
MAX_STRING_SIZE
= EXTENDED
を設定するには、COMPATIBLE
初期化パラメータを12.0.0.0
以上に設定する必要があります。
MAX_STRING_SIZE
の値はSTANDARD
からEXTENDED
に変更できます。ただし、MAX_STRING_SIZE
の値をEXTENDED
からSTANDARD
には変更できません。
MAX_STRING_SIZE
= EXTENDED
に設定することにより、ユーザーはデータベース内でアプリケーションの非互換性を引き起こす可能性がある操作を明示的に行うことになります。拡張データ型の使用を禁止するアプリケーションは、リライトすることによりいずれかの設定との互換性を確保できます(例: これらのアプリケーションは明示的にCASTを使用することにより、CREATE TABLE AS SELECT
の実行中のVARCHAR2
式の長さを固定できます)。
MAX_STRING_SIZE
を変更すると、データベース・オブジェクトが更新され、次のように無効化される場合があります。
仮想列を持つ表は新しいデータ型メタデータで更新され、仮想列がVARCHAR2(4000)
、4000バイトのNVARCHAR2
またはRAW(2000)
型となります。
ファンクション索引に関連する仮想列の変更によって索引キーが索引キー長さ制限を超過した場合、ファンクション索引は使用できなくなります。このような索引の再構築の試行は、「ORA-01450: キーが最大長を超えました」
エラーで失敗します。
ビューにVARCHAR2(4000)
、4000バイトのNVARCHAR2
またはRAW(2000)
型の式列が含まれている場合、これらのビューは無効化されます。
マテリアライズド・ビューは新しいメタデータで更新され、VARCHAR2(4000)
、4000バイトのNVARCHAR2
またはRAW(2000)
型の式列となります。
非CDBのVARCHAR2、NVARCHAR2およびRAW列の最大サイズを増加する
非CDBでVARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズを増加するには、次の手順に従います。
データベースを停止します。
UPGRADE
モードでデータベースを再起動します。
MAX_STRING_SIZE
の設定をEXTENDED
に変更します。
rdbms/admin/utl32k.sql
スクリプトを実行します。このスクリプトを実行するには、AS SYSDBA
と接続している必要があります。
データベースをNORMAL
モードで再起動します。
注意:
utl32k.sql
スクリプトによって、必要な場合に、VARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズが増やされます。一部のビューのSQLのリライト方法が原因で、これらのビューのVARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズが増加しない場合があります。
rdbms/admin/utlrp.sql
スクリプトを実行して、無効なオブジェクトを再コンパイルします。このスクリプトを実行するには、AS SYSDBA
と接続している必要があります。
CDBのVARCHAR2、NVARCHAR2およびRAW列の最大サイズを増加する
CDBおよびCDB内のすべてのPDBでVARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズを増加するには、次の手順に従います。
SYSDBAとしてCDBに接続します。
ルートで、次のようにMAX_STRING_SIZE
の設定をEXTENDED
に変更します。
ALTER SESSION SET CONTAINER=CDB$ROOT; ALTER SYSTEM SET max_string_size=extended SCOPE=SPFILE;
注意:
ルートでは、MAX_STRING_SIZE
がEXTENDED
に設定された後も、引き続きSTANDARD
セマンティクスが使用されます。ルートでMAX_STRING_SIZE
をEXTENDED
に設定する理由は、CDB内のすべてのPDBがルートからEXTENDED
設定を継承できるようにするためです。
CDBを停止します。
UPGRADEモードでCDBを再起動します。
startup upgrade;
すべてのPDBを移行モードでオープンした後、データベースを終了します。
ALTER PLUGGABLE DATABASE ALL OPEN UPGRADE; EXIT;
catcon.pl
スクリプトを使用して、ルートに加えて、VARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズを増やすCDB内のすべてのPDBでrdbms/admin/utl32k.sql
スクリプトを実行します。プロンプトが表示されたら、SYSのパスワードを入力します。
$ cd $ORACLE_HOME/rdbms/admin $ mkdir /scratch/mydir/utl32k_cdb_pdbs_output $ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u SYS -d $ORACLE_HOME/rdbms/admin -l '/scratch/mydir/utl32k_cdb_pdbs_output' -b utl32k_cdb_pdbs_output utl32k.sql catcon: ALL catcon-related output will be written to [/scratch/mydir/utl32k_cdb_pdbs_output/utl32k_cdb_pdbs_output_catcon_23172.lst] catcon: See [/scratch/mydir/utl32k_cdb_pdbs_output/utl32k_cdb_pdbs_output*.log] files for output generated by scripts catcon: See [/scratch/mydir/utl32k_cdb_pdbs_output/utl32k_cdb_pdbs_output_*.lst] files for spool files, if any Enter Password: catcon.pl: completed successfully $
注意:
utl32k.sql
スクリプトによって、必要な場合に、VARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズが増やされます。一部のビューのSQLのリライト方法が原因で、これらのビューのVARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズが増加しない場合があります。
SYSDBAとしてCDBに接続して、データベースを停止します。
CDBをNORMALモードで再起動します。
startup;
CDB内のすべてのPDBをオープンします。
ALTER PLUGGABLE DATABASE ALL OPEN READ WRITE;
catcon.pl
スクリプトを使用して、ルートおよびCDB内のすべてのPDBでrdbms/admin/utlrp.sql
スクリプトを実行して、無効なオブジェクトを再コンパイルします。プロンプトが表示されたら、SYSのパスワードを入力します。
$ cd $ORACLE_HOME/rdbms/admin $ mkdir /scratch/mydir/utlrp_cdb_pdbs_output $ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u SYS -d $ORACLE_HOME/rdbms/admin -l '/scratch/mydir/utlrp_cdb_pdbs_output' -b utlrp_cdb_pdbs_output utlrp.sql catcon: ALL catcon-related output will be written to [/scratch/mydir/utlrp_cdb_pdbs_output/utlrp_cdb_pdbs_output_catcon_24271.lst] catcon: See [/scratch/mydir/utlrp_cdb_pdbs_output/utlrp_cdb_pdbs_output*.log] files for output generated by scripts catcon: See [/scratch/mydir/utlrp_cdb_pdbs_output/utlrp_cdb_pdbs_output_*.lst] files for spool files, if any Enter Password: catcon.pl: completed successfully $
関連項目:
CDBおよびPDBでオラクル社が提供するスクリプトを実行するためのcatcon.pl
スクリプトの使用方法の詳細は、『Oracle Database管理者ガイド』を参照してください。
PDBのVARCHAR2、NVARCHAR2およびRAW列の最大サイズを増加する
PDBでVARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズを増加するには、次の手順に従います。
PDBを停止します。
PDBを移行モードで再オープンします。
注意:
現在のコンテナがPDBである場合、次のSQL文を使用してPDBを移行モードで再オープンできます。
ALTER PLUGGABLE DATABASE
pdb-name OPEN UPGRADE;
PDBのMAX_STRING_SIZE
の設定をEXTENDED
に変更します。
PDBでrdbms/admin/utl32k.sql
スクリプトを実行します。utl32k.sql
スクリプトを実行するには、AS SYSDBA
と接続している必要があります。
PDBをNORMAL
モードで再度オープンします。
注意:
utl32k.sql
スクリプトによって、必要な場合に、VARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズが増やされます。一部のビューのSQLのリライト方法が原因で、これらのビューのVARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズが増加しない場合があります。
PDBでrdbms/admin/utlrp.sql
スクリプトを実行して、無効なオブジェクトを再コンパイルします。このスクリプトを実行するには、AS SYSDBA
と接続している必要があります。
関連項目:
PDBのオープン・モード変更の詳細は、『Oracle Database管理者ガイド』を参照してください。
Oracle RACデータベースのVARCHAR2、NVARCHAR2およびRAW列の最大サイズを増加する
Oracle RACデータベースでVARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズを増加するには、次の手順に従います。
1つを残して、すべてのOracle RACデータベース・インスタンスを停止します。
UPGRADE
モードでOracle RACデータベース・インスタンスを再起動します。
MAX_STRING_SIZE
の設定をEXTENDED
に変更します。
Oracle RACデータベース・インスタンスで、rdbms/admin/utl32k.sql
スクリプトを実行します。このスクリプトを実行するには、AS SYSDBA
と接続している必要があります。
NORMAL
モードですべてのOracle RACデータベース・インスタンスを再起動します。
注意:
utl32k.sql
スクリプトによって、必要な場合に、VARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズが増やされます。一部のビューのSQLのリライト方法が原因で、これらのビューのVARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズが増加しない場合があります。
rdbms/admin/utlrp.sql
スクリプトを実行して、無効なオブジェクトを再コンパイルします。このスクリプトを実行するには、AS SYSDBA
と接続している必要があります。
Oracle Data Guardロジカル・スタンバイ・データベースのVARCHAR2、NVARCHAR2およびRAW列の最大サイズを増加する
Oracle Data Guardロジカル・スタンバイ・データベースのVARCHAR2
、NVARCHAR2
、およびRAW
列の最大サイズを増やすには、次の手順に従います。
Oracle Data Guardプライマリ・データベースおよびロジカル・スタンバイ・データベースをシャットダウンします。
プライマリ・データベースおよびロジカル・スタンバイ・データベースをUPGRADE
モードで再起動します。
プライマリ・データベースおよびロジカル・スタンバイ・データベースのMAX_STRING_SIZE
の設定をEXTENDED
に変更します。
プライマリ・データベースとロジカル・スタンバイ・データベースの両方でrdbms/admin/utl32k.sql
スクリプトを実行します。このスクリプトを実行するには、AS SYSDBA
と接続している必要があります。
プライマリ・データベースおよびロジカル・スタンバイ・データベースをNORMAL
モードで再起動します。
注意:
utl32k.sql
スクリプトによって、必要な場合に、VARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズが増やされます。一部のビューのSQLのリライト方法が原因で、これらのビューのVARCHAR2
、NVARCHAR2
およびRAW
列の最大サイズが増加しない場合があります。
プライマリ・データベースおよびロジカル・スタンバイ・データベースでrdbms/admin/utlrp.sql
スクリプトを実行して、無効なオブジェクトを再コンパイルします。このスクリプトを実行するには、AS SYSDBA
と接続している必要があります。
SQL Applyを再起動します。
関連項目:
MAX_STRING_SIZE
パラメータの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照