Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
CHAR データ型は、32767 バイトまでの文字データを格納します。
CHAR [ ( max-length [ CHAR | CHARACTER ] ) ]
max-length 文字列の最大長。バイト長のセマンティックを使用する場合 (長さの部分に CHAR または CHARACTER を指定しない場合)、長さはバイト単位になります。また、範囲は 1 ~ 32767 にします。指定しない場合の長さは 1 です。
文字長のセマンティックを使用する場合 (長さの部分に CHAR または CHARACTER を指定する場合)、長さは文字単位になります。また、max-length を指定します。max-length は最大 32767 文字です。
マルチバイト文字は CHAR 型に格納できますが、文字長のセマンティックを使用していなければ、宣言される長さは文字数ではなくバイト数です。
CHAR は CHARACTER と指定することもできます。どの構文を使用する場合でも、データ型は CHAR と記述されます。
セマンティック上、CHAR は VARCHAR と同じですが、型は異なります。SQL Anywhere では、CHAR は可変長型です。他のリレーショナルデータベース管理システムでは、CHAR は固定長型であり、データには max-length バイトまでブランクが埋め込まれて格納されます。SQL Anywhere では格納される文字データにブランクを埋め込みません。
CHAR カラムがどのように記述されるかは、クライアントインターフェイス、使用される文字セット、および文字長セマンティックが使用されるかどうかによって異なります。たとえば、Embedded SQL では、記述される長さはクライアント文字セットの最大バイト数となります。記述される長さが 32767 バイトを超える場合、カラムは DT_LONGVARCHAR 型として記述されます。次の表は、Embedded SQL の例と、DESCRIBE を実行した場合に返される結果を示します。
ODBC では、odbc_distinguish_char_and_varchar オプションに応じて、CHAR は SQL_CHAR または SQL_VARCHAR として記述されます。
SQL/2008 SQL/2008 と互換性があります。SQL/2008 標準では、文字長セマンティックがデフォルトですが、SQL Anywhere ではバイト長セマンティックがデフォルトです。大文字と小文字を区別しない照合のサポートと SQL Anywhere のブランク埋め込みに対するサポートのために、SQL 標準との間に、一部不整合があります。
SQL/2008 標準では、SQL 言語機能 T061 として、明示的な文字長またはバイト長のセマンティックがサポートされています。