Oracle では、次の違いは何ですか?
CREATE TABLE CLIENT
(
NAME VARCHAR2(11 BYTE),
ID_CLIENT NUMBER
)
そして
CREATE TABLE CLIENT
(
NAME VARCHAR2(11 CHAR), -- or even VARCHAR2(11)
ID_CLIENT NUMBER
)
ベストアンサー1
データベースの文字セットが UTF-8 であると仮定します。これは、Oracle の最新バージョンで推奨されている設定です。この場合、一部の文字はデータベースに格納するのに 1 バイト以上かかります。
フィールドを として定義するとVARCHAR2(11 BYTE)
、Oracle は最大 11 バイトを格納に使用できますが、一部の文字 (英語以外の文字など) は格納に 1 バイト以上かかるため、実際には 11 文字をフィールドに格納できない場合があります。
フィールドを定義すると、VARCHAR2(11 CHAR)
Oracle は、各文字を格納するのに何バイト必要かに関係なく、11 文字を格納するのに十分なスペースを使用できます。1 文字には最大 4 バイト必要になる場合があります。