Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL データ型 » 文字データ型

 

VARCHAR データ型

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 と互換性があります。文字長のセマンティックはベンダ拡張です。