優しい夜
varchar2とnvarchar2の違い
2008-03-08-Sat  CATEGORY: Oracle
●varchar2(*)
*は納める事が可能な最大バイト数
1〜4000バイトの間で指定可能。

納められた値がマルチバイトの場合、データベース上では、文字数×2バイトの領域が使用される。
※データベースのDatabase Charactersetが Unicode(UTF8) で定義されている場合、文字数×3バイトの領域が使用される。

varchar2は、バーチャファイター2の略。

●nvarchar2(*)
*は納める事が可能な最大文字数
1〜2000文字の間で指定可能。

カラムに納める値が英数字でも日本語でも、*がカラムに納めることが可能な最大文字数となる。

nは、Nintendo(ニンテンドー)ではなく…、National(各国語)の意。

納められた値がマルチバイトの場合、データベース上では、文字数×2バイトの領域が使用される。
※データベースのNational Charactersetが Unicode(UTF8) で定義されている場合、文字数×3バイトの領域が使用される。

マルチバイト・キャラクタセットについての参考サイト

●データベースのキャラクタセットの確認方法

SELECT NLS_CHARSET_NAME(NLS_CHARSET_ID('CHAR_CS')),
             NLS_CHARSET_NAME(NLS_CHARSET_ID('NCHAR_CS')) FROM DUAL;

または

SELECT PARAMETER, VALUE
             FROM NLS_DATABASE_PARAMETERS
             WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');

を使用する。

NLS_CHARACTERSET…データベース・キャラクタセット
NLS_NCHAR_CHARACTERSET…各国語キャラクタセット

Trackbacks0 Comments0
Comments

Only the blog author may view the comment.
 
Trackbacks
TB*URL
ページトップへ
Copyright © 2009 優しい夜. all rights reserved.