私はスキーマ宣言の下に持っているコードサポートしています: -VARCHAR2(nはBYTE | CHAR)デフォルト - > CHARまたはBYTE
create table sample (
id number Primary key,
username varchar2(100),
);
を私は& VARCHAR2がn(2つの宣言モード VARCHAR2を持っている、Oracleのマニュアルに見上げBYTE)とvarchar2(n CHAR)を指定していない場合、BYTEまたはCHARを明示的に指定しないと、 &という名前のvarchar2(500)が宣言され、500バイトが割り当てられます。
おかげで、
あなたはVARCHAR列のために** CHARにNLS_LENGTH_SEMANTICSを設定する* * **がバイト4000の限界を克服しないことを追加したい場合があります。 –
(https://docs.oracle.com/cd/E24693_01/server.11203/e24448/initparams149.htm)ページに記載されています。_Caution: NLS_LENGTH_SEMANTICSパラメータをCHARに設定しないことを強くお薦めしますインスタンスまたはサーバー・パラメータ・ファイルに格納します。これにより、多くの既存のインストールスクリプトが、文字長セマンティクスを持つ列を予期せず作成し、バッファオーバーフローなどのランタイムエラーを引き起こす可能性があります。ほとんどの場合、長さを文字で指定することを意図しています。それは本当に私を失望させます。私は何を知っていなければならないのですか、今はいつでも、私はいくつかの列のサイズを増やす必要があります。 – mkb
@mkb - セッションレベルでパラメータを設定することもできます。インスタンスレベルで設定するリスクがないようにするには、オブジェクトを定義するときにセッションレベルでパラメータを設定します。または、Oracleのインストールスクリプトを実行する前にインスタンスレベルでBYTEに設定し直してください。 –