目的
Teradata Database内部文字を格納するための長さ0からnの可変長文字列を表わします。LONG VARCHARは、Teradata Databaseの内部文字を格納するための最長の可変長文字列を指定します。
構文
- n
- このサーバー文字セットで定義された列に割り当てられる最大文字数またはバイト数。
- LATINサーバー文字セットの場合、nの最大値は64000文字です。
- UNICODEおよびGRAPHICサーバー文字セットの場合、nの最大値は32000文字です。
- KANJISJISサーバー文字セットの場合、nの最大値は32000バイトです。
- server_character_set
- 定義する文字タイプの列のサーバー文字セット。
- attributes
- 適切なデータ型、列記憶、または列制約属性。
ANSI準拠
VARCHARは、ANSI SQL:2011に準拠しています。
LONG VARCHAR、VARGRAPHIC、およびLONG VARGRAPHICは、ANSI SQL:2011規格に対するTeradataの拡張機能です。
格納
文字データは、使用されているサーバー文字セットに応じて文字またはバイト単位で割り当てられます。1文字当たりの格納バイト数は、次の表に示すように、サーバー文字セットによって異なります。
サーバー文字セット | サーバー使用形式 | サーバーのスペース割り当て | 異種クライアント間で共用可能か? |
---|---|---|---|
LATIN | 固定8ビットのLATIN | 文字ベース | はい |
UNICODE | 固定16ビットのUNICODE | ||
GRAPHIC | 固定16ビットのUNICODE | ||
KANJISJIS | 1バイトとマルチバイトが混在するKANJISJIS | バイト ベース | はい |
クライアントのシステム データ型との変換は、Teradata Databaseによって行なわれます。このデータ型は、国際文字セットをサポートします。
VARCHARの外部表現
クライアント アプリケーションは、Teradata Databaseと対話するときに、常にその文字セット(文字データ用の使用形式)を指示します。サーバーは、すべての文字データをその形式でクライアント アプリケーションに返します。
VARCHARタイプの場合にエクスポートされるバイト数の詳細は、Teradata SQL文字列およびクライアント物理バイトを参照してください。
LONG VARCHARの外部表現
LONG VARCHARタイプの場合にエクスポートされるバイト数の詳細については、Teradata SQL文字列およびクライアント物理バイトを参照してください。
次の表は、各種のサーバー文字セットの場合にLONG VARCHARデータがどのように表現されるかを示しています。これらの定義以外では、LONG VARCHAR文字列の動作はVARCHAR文字列と同じです。
サーバー文字セット | LONG VARCHARの外部表記に相当する表記 |
---|---|
|
VARCHAR(64000) |
|
VARCHAR(32000) |
VARGRAPHICの外部表現
次のテーブルでは、IBM DB2 VARGRAPHICタイプのクライアント表現をリストしています。
アプリケーション定義とクライアント データ型を判別するのは、アプリケーション プログラマの責任です。
VARGRAPHIC(n)文字列の長さをkと定義します。ここで、0 <= k <= nです。
クライアントCPUアーキテクチャ | クライアントの内部データ形式 |
---|---|
IBMメインフレーム | 2バイトのSMALLINT(kの長さカウント)、続いてk個のDB2 GRAPHIC文字。合計は2+2k EBCDICバイトになる。 |
表示形式
VARCHAR(n)のデフォルトの表示形式は、X(n)です。
LONG VARCHARのデフォルトの表示形式は、有効なサーバー文字セットに応じてX(32000)またはX(64000)になります。
詳細については、データ型のデフォルトの形式を参照してください。
グラフィック データ
VARGRAPHICまたはLONG VARGRAPHIC を使って、マルチバイトの文字データを表わすことができます。
VARGRAPHIC(n)は、VARCHAR(n) CHARACTER SET GRAPHICと等価です。すべてのVARGRAPHIC(n)データをVARCHAR(n) CHARACTER SET GRAPHICと定義するのが最善策です。
VARCHAR(n) CHARACTER SET GRAPHIC定義のnの最大値は32000です。デフォルト長はありません。長さを指定しない場合、エラーになります。
LONG VARGRAPHICは、LONG VARCHAR CHARACTER SET GRAPHICと等価です。すべてのLONG VARGRAPHICデータをLONG VARCHAR CHARACTER SET GRAPHICと定義するのが最善策です。
関連トピック
詳細情報 | 参照先 |
---|---|
文字リテラル | 文字列リテラル |
トランザクションとエラー処理を含む、外部から内部へと内部から外部への文字データの変換 | Teradata Vantage™ NewSQL Engine国際文字セット サポート、B035-1125. |
例: VARCHARデータ型
以下の文は、InfoKeyとInfoDataの2つのVARCHAR列を定義するテーブルを作成します。
CREATE TABLE InfoTable (InfoKey VARCHAR(10) NOT NULL ,InfoData VARCHAR(16384) ) UNIQUE PRIMARY INDEX ( InfoKey );
以下の文は、長さが異なる文字データをInfoKeyとInfoDataの列に挿入します。
INSERT INTO InfoTable ('001_5_799', 'Data for key 001_5_799'); INSERT INTO InfoTable ('2', 'Data for key 2');
例: LONG VARCHARデータ型
以下の文は、InfoDataというLONG VARCHAR列を定義するテーブルを作成します。
CREATE TABLE InfoTable (InfoData LONG VARCHAR);