VARCHAR データ型は、32767 バイトまでの文字データを格納します。
VARCHAR [ ( max-length [ CHAR | CHARACTER ] ) ]
max-length 文字列の最大長。バイト長のセマンティックを使用する場合 (長さの部分に CHAR または CHARACTER を指定しない場合)、長さはバイト単位になります。また、範囲は 1 ~ 32767 にします。指定しない場合の長さは 1 です。
文字長のセマンティックを使用する場合 (長さの部分に CHAR または CHARACTER を指定する場合)、長さは文字単位になります。また、max-length を指定します。文字長のセマンティックを使用する場合、データベースのエンコーディングで、文字長に文字の最大長を乗じた数が 32767 バイトを超えないようにします。次の表は、サポートされる文字セットの型ごとの最大長です。
文字セット | VARCHAR の最大長 |
---|---|
SBCS | 32767 文字 |
DBCS | 16383 文字 |
UTF-8 | 8191 文字 |
マルチバイト文字は VARCHAR として格納できますが、宣言される長さは文字数ではなくバイト数です。
VARCHAR は CHAR VARYING または CHARACTER VARYING と指定することもできます。どの構文を使用する場合でも、データ型は VARCHAR と記述されます。
文字長のセマンティックを使用すると、使用するインタフェースによって、クライアント・アプリケーションでカラムに DESCRIBE が実行されたときに返される値が変わることがあります。たとえば、Embedded SQL クライアント・アプリケーションで、バイト長のセマンティックを使用して宣言されたカラムに DESCRIBE が実行された場合、バイト長が指定された値が返されます。そのため、VARCHAR(10) のカラムは 10 バイト長の DT_VARCHAR 型として記述されます。ただし、Embedded SQL クライアント・アプリケーションで、文字長のセマンティックを使用して宣言されたカラムに DESCRIBE が実行された場合、クライアントの CHAR 文字セットの最大バイト長が返されます。たとえば、CHAR 文字セットに UTF-8 を使用するクライアントの場合、VARCHAR(10 CHAR) カラムは 40 バイト長 (10 文字の各文字に最高 4 バイトを乗じた値) の DT_VARCHAR 型と記述されます。
SQL/2003 SQL/2003 と互換性があります。文字長のセマンティックはベンダ拡張です。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |