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 データ型 » 文字データ型

 

CHAR データ型

CHAR データ型は、32767 バイトまでの文字データを格納します。

構文
CHAR [ ( max-length [ CHAR | CHARACTER ] ) ]
パラメータ
  • max-length   文字列の最大長。バイト長のセマンティックを使用する場合 (長さの部分に CHAR または CHARACTER を指定しない場合)、長さはバイト単位になります。また、範囲は 1 ~ 32767 にします。指定しない場合の長さは 1 です。

    文字長のセマンティックを使用する場合 (長さの部分に CHAR または CHARACTER を指定する場合)、長さは文字単位になります。また、max-length を指定します。文字長のセマンティックを使用する場合、データベースのエンコーディングで、文字長に文字の最大長を乗じた数が 32767 バイトを超えないようにします。次の表は、サポートされる文字セットの型ごとの最大長です。

    文字セット CHAR の最大長
    SBCS 32767 文字
    DBCS 16383 文字
    UTF-8 8191 文字

備考

マルチバイト文字は CHAR 型に格納できますが、文字長のセマンティックを使用していなければ、宣言される長さは文字数ではなくバイト数です。

CHAR は CHARACTER と指定することもできます。どの構文を使用する場合でも、データ型は CHAR と記述されます。

セマンティック上、CHAR は VARCHAR と同じですが、型は異なります。SQL Anywhere では、CHAR は可変長型です。他のリレーショナル・データベース管理システムでは、CHAR は固定長型であり、データには max-length バイトまでブランクが埋め込まれて格納されます。SQL Anywhere では格納される文字データにブランクを埋め込みません。

文字長のセマンティックを使用すると、使用するインタフェースによって、クライアント・アプリケーションでカラムに DESCRIBE が実行されたときに返される値が変わることがあります。たとえば、Embedded SQL クライアントで、バイト長のセマンティックを使用して宣言されたカラムに DESCRIBE が実行された場合、バイト長が指定された値が返されます。そのため、CHAR(10) のカラムは 10 バイト長の DT_FIXCHAR 型として記述されます。ただし、Embedded SQL クライアントで、文字長のセマンティックを使用して宣言されたカラムに DESCRIBE が実行された場合、クライアントの CHAR 文字セットの最大バイト長が返されます。たとえば、CHAR 文字セットに UTF-8 を使用する Embedded SQL クライアントの場合、CHAR(10 CHAR) カラムは 40 バイト長 (10 文字の各文字に最高 4 バイトを乗じた値) の DT_FIXCHAR 型と記述されます。

参照
標準と互換性
  • SQL/2003   SQL/2003 と互換性があります。文字長のセマンティックはベンダ拡張です。