Teradata Databaseの内部文字の格納用の固定長の文字列を表わします。
構文
{ { CHARACTER | CHAR } [ ( n ) ] [ { CHARACTER | CHAR } SET server_character_set ] | GRAPHIC [ ( n ) ] } [ attributes [...] ]
- n
- このサーバー文字セットで定義された列に割り当てられる文字数またはバイト数。
- LATINサーバー文字セットの場合、nの最大値は64000文字です。
- UNICODEおよびGRAPHICサーバー文字セットの場合、nの最大値は32000文字です。
- KANJISJISサーバー文字セットの場合、nの最大値は32000バイトです。
- server_character_set
- 定義する文字タイプの列のサーバー文字セット。CHARACTER SET句を参照してください。
- attributes
- 適切なデータ型、列記憶、または列制約属性。
ANSI準拠
CHARACTERは、ANSI SQL:2011に準拠しています。
GRAPHICは、ANSI SQL:2011規格に対するTeradataの拡張機能です。
ストレージ
文字データは、使用されているサーバー文字セットに応じて文字またはバイト単位で割り当てられます。1文字当たりの格納バイト数は、次の表に示すように、サーバー文字セットによって異なります。
サーバー文字セット | サーバー使用形式 | サーバーのスペース割り当て | 異種クライアント間で共用可能か? |
---|---|---|---|
LATIN | 固定8ビットのLATIN | 文字ベース | はい |
UNICODE | 固定16ビットのUNICODE | ||
GRAPHIC | 固定16ビットのUNICODE | ||
KANJISJIS | 1バイトとマルチバイトが混在するKANJISJIS | バイト ベース | はい |
CHARACTERの外部表現
クライアント アプリケーションは、Teradata Databaseと対話するときに、その文字セット(文字データ用の使用形式)を指示します。サーバーは、すべての文字データをその形式でクライアント アプリケーションに返します。
クライアントのシステム データ型との変換は、Teradata Databaseによって行なわれます。
CHARACTER型の場合にエクスポートされるバイト数の詳細は、Teradata SQL文字列およびクライアント物理バイトを参照してください。
表示形式
CHARACTER(n)のデフォルトの表示書式は、X(n)です。例えば、X(5)の場合、‘HELLO’のデータは‘HELLO’のように表示されます。
GRAPHICデータ
GRAPHICを使って、マルチバイトの文字データを表わすことができます。
GRAPHIC(n)は、CHARACTER(n) CHARACTER SET GRAPHICと等価です。すべてのGRAPHIC(n)データをCHARACTER(n) CHARACTER SET GRAPHICと定義するのが最善策です。
グラフィック列の各マルチバイト文字は、1論理文字当たり2バイトであるものとして格納されます。したがって、グラフィック データ列は、必ず、evenのバイト数を表わすことになります。
長さ(n)なしでGRAPHICを指定した場合、デフォルトはGRAPHIC(1)になります。
以下のルールが、GRAPHICデータの切捨てと文字の埋込みに適用されます。
グラフィック文字列の状況 | 结果 |
---|---|
列の指定長より短い | 残りのスペースにグラフィック埋込み文字が入ります。 |
列の指定長より長い | 余分な文字が切り捨てられます。 |
グラフィック データとクライアント文字セット
- KanjiEBCDICの2バイトのグラフィック データ
- 2バイトのShift-JISコードを表わすKanjiShift-JIS
- 固定長の2バイトのEUC文字を表わすKanjiEUC
KanjiEBCDICのグラフィック文字列リテラルでは、次の構文を使用します。
KanjiEBCDICの文字セットでは、グラフィック文字列内のマルチバイト文字は、次のように、シフト アウト/シフト イン文字で区切る必要があります。
INSERT INTO TableEBCDIC (ColGRAPH)
VALUES (G'<AB>');
ここで、ABは、有効なKanjiEBCDICマルチバイト文字列であり、Gは文字列がグラフィック レパートリーに属さなければならないことを示します。また、各単一引用符は1バイト文字です。
GRAPHICの外部表現
次の表では、IBM DB2 GRAPHICタイプのクライアント表現をリストしています。
アプリケーション定義とクライアント データ型を判別するのは、アプリケーション プログラマの責任です。
クライアントCPUアーキテクチャ | クライアントの内部データ形式 |
---|---|
IBMメインフレーム | n個のDB2 GRAPHIC文字の2nバイト |
関連トピック
詳細情報 | 参照先 |
---|---|
文字リテラル | 文字列リテラル |
トランザクションとエラー処理を含む、外部から内部へと内部から外部への文字データの変換 | Teradata Vantage™ - Advanced SQL Engine国際文字セット サポート、B035-1125。 |
例: CHARACTERデータ型
以下のテーブル定義では、Sex (性別)列に長さ1のCHARACTERデータ型が割り当てられ、Frgn_Lang (外国語)列に長さ7のCHARACTERデータ型が割り当てられます。
CREATE TABLE PersonalData (Id INTEGER ,Age INTEGER ,Sex CHARACTER NOT NULL UPPERCASE ,Frgn_Lang CHARACTER(7) NULL UPPERCASE );
例: グラフィック データとクライアント文字セット
次のテーブルについて考察します。
CREATE TABLE Product1Data (id1 INTEGER ,code1 CHARACTER(3) CHARACTER SET GRAPHIC);
列code1には、次のデータが入るものとします。
457F4577456D
レコード モードまたは標識モードのKanjiEBCDICセッションでは、次のようなcode1の内容がユーザーに返されます。
457F4577456D
フィールド モードのKanjiEBCDICでは、次のようなcode1の内容がユーザーに返されます。
0E457F4577456D0F