2010年11月2日火曜日

Oracle DBの文字列のサイズ単位の確認と指定方法

確認方法
NLS_* パラメータの現在の値を調べる
V$NLS_PARAMETERS ビューに格納されている。

SQL> select * from v$nls_parameters;
 上記を実行し下記の内容で判断
NLS_LENGTH_SEMANTICS BYTE
ならばByte単位の指定
 
変更方法
NLS_LENGTH_SEMANTICS
NLS_LENGTH_SEMANTICS を 'CHAR' にすると文字列の指定は CHAR 単位になる。BYTE 単位にしたい場合には明示的に指定しなければならない。

SQL> ALTER SESSION SET NLS_LENGTH_SEMANTICS='CHAR';

上記実行で変更される。

BYTE単位の明示的な指定例
SQL> CREATE TABLE CHARBASE_TABLE(
2 NAME1 VARCHAR2(5),
3 NAME2 VARCHAR2(5 BYTE)
4 );
 3行目でBYTE単位の明示的な指定


詳しくは、
SHIFT the Oracle 内の下記記事参照の事
NLS 関連初期化パラメータ(NLS 環境変数)

0 件のコメント:

コメントを投稿