- データ型記述CREATE TABLE ステートメントのデータ型句に応じて、Teradata FastLoadは、CHAR( n) と VARCHAR( n) のデータ型指定を含むデータを次のように格納
- DEFINEコマンドのデータ型属性がCHAR(n)の場合、さらに
datadesc 属性がCHAR( n)CREATE TABLE、フィールド全体の固定長形式でデータを格納Teradata FastLoad。
datadesc 属性がCHAR( m)CREATE TABLE)、Teradata FastLoadはデータを固定長形式で格納し、m> n場合は埋め込み、m < n場合は切り捨てられます。
datadesc 属性CREATE TABLEVARCHAR( m)、Teradata FastLoadは空白をトリムした可変長形式でデータを格納します。
- DEFINEコマンドのデータ型属性がVARCHAR(n)の場合、さらに
datadesc 属性 CREATE TABLEがVARCHAR( m)Teradata FastLoadTeradata FastLoad、データを可変長形式で格納し、パディングなし、ブランクはトリムされません。
datadesc 属性がCHAR( m)CREATE TABLE、必要に応じて、埋め込まれた形式または切り捨てられた形式でデータを保存Teradata FastLoad。
- DEFINEコマンドのデータ型属性がCHAR(n)の場合、さらに
- 入力長とフィールド記述
次の表は、各データ型仕様の入力長とフィールドの説明を示しています。
- UTF-16セッションでは、文字サイズは 2 バイトです。CREATE TABLEの CHAR(n) または VARCHAR(n) フィールドの場合、DEFINEコマンドの対応するフィールド サイズは、それぞれ CHAR(n*2) または VARCHAR(n*2) である 2 倍でなければなりません。
- UTF-8セッションでは、文字サイズは 1 ~ 3 バイトです。CREATE TABLEの CHAR(n) または VARCHAR(n) フィールドの場合、DEFINEコマンドの対応するフィールド サイズは、それぞれ 3 倍 (CHAR(n*3) または VARCHAR(n*3) でなければなりません。
データ型 | 長さ | 説明 |
---|---|---|
BIGINT | 8バイト | ビットの符号付き2進数値 |
BYTE(n) | n | nバイト |
BYTEINT | 1バイト | ビットの符号付き2進数値 |
CHAR、CHARS(n)、およびCHARACTERS(n) | nバイト | nn個のASCII文字 |
DATE | 4バイト | DATEFORMコマンドを使用してANSIDATEをDATEデータ タイプとして指定した場合、Teradata FastLoadは、各DATEフィールドをCHAR(10) フィールドに内部的に変換します。
の 10 進値としてYYYMMDD形式の 32 ビット整数 |
DECIMAL(x)およびDECIMAL(x,y) | ネットワークでは1、2、4、8、16バイト、 メインフレームではパック10進数 |
128 ビット倍精度浮動小数点 DECIMALデータ タイプの詳細については、Teradata Vantage™ - データ型およびリテラル, B035-1143を参照してください。 |
FLOAT | 8バイト | ビットの倍精度浮動小数点数 |
GEOSPATIAL DATA | 最大64000 | FastLoadはLOBで表わされる地理空間データをサポートしていません。 |
INTEGER | 4バイト | ビットの符号付き2進数値 |
LONG VARCHAR | m + 2 文字m = 32000 | 16 ビット整数、カウント m、m ASCII文字 LONG VARCHARはVARCHAR (64000) として解釈 VARCHAR(64000 DML USING LONG VARCHARされます。したがって、サーバー側の文字セットとクライアント側の文字セット両方が 1 バイトであることがわかっている場合にのみ、LONG VARCHAR指定することをお勧めします。
|
NUMBER(p,s) NUMBER(p) または NUMBER NUMBER(*,y) |
最大サイズ = 19 | 上の2つの型は固定小数点NUMBERです。下の2つは浮動小数点NUMBERです。 NUMBERデータ型の詳細については、Teradata Vantage™ - データ型およびリテラル, B035-1143(B0351143)を参照してください。 |
PERIOD(DATE) | 最大=8バイト | 4バイトの符号付き整数(クライアント形式に変換)。この整数は、DATEデータ型と同様に日付を表わします。 (例: (10000*(year-1900)) + (100*month) + day)。 精度(n/a) 精度値は0~6の範囲で指定します。 |
PERIOD(TIME[(n)]) | 最大 =12バイト | 第2: 4 バイトの符号付き整数がクライアント形式に反転しました。この整数は、秒数をスケール付きの 10 進数として表します。 Hour: 符号無しの1バイト。このバイトは時間の数を表わします。 Minute: クライアント形式の符号無しの1バイト。このバイトは分の数を表わします。 精度n 精度値は0~6の範囲で指定します。 |
PERIOD(TIME[(n)] WITH TIME ZONE) | 最大=16バイト | 第 2: 4 バイトの符号付き整数がクライアント形式に反転しました。この整数は、秒数をスケール付きの 10 進数として表します。 Hour: 符号無しの1バイト。このバイトは時間の数を表わします。 Minute: 符号無しの1バイト。このバイトは分の数を表わします。 タイムゾーン 時間: 符号なし1バイト。このバイトは、タイムゾーンによる時差の時間部分と、時差が+かかを表わします。 Time Zone Minute: 符号無しの1バイト。このバイトは、タイムゾーンのずれの分の部分を表わします。 精度n 精度値は0~6の範囲で指定します。 |
PERIOD(TIMESTAMP[(n)]) | 最大=20バイト | 第 2: 4 バイトの符号付き整数がクライアント形式に反転しました。この整数は、秒数をスケール付きの 10 進数として表します。 Year: 2 バイトの符号付き短整数がクライアント形式に反転しました。このバイトは年の値を表わします。 Month: 符号無しの1バイト。このバイトは月の値を表わします。 Day: 符号無しの1バイト。このバイトは日にちを表わします。 Hour: 符号無しの1バイト。このバイトは時間の数を表わします。 Minute: 符号無しの1バイト。このバイトは分の数を表わします。 精度n 精度値は0~6の範囲で指定します。 |
PERIOD(TIMESTAMP[(n)] WITH TIME ZONE) | 最大=24バイト | 第 2: 4 バイトの符号付き整数がクライアント形式に反転しました。この整数は、秒数をスケール付きの 10 進数として表します。 Year: 2 バイトの符号付き短整数がクライアント形式に反転しました。このバイトは年の値を表わします。 Month: 符号無しの1バイト。このバイトは月の値を表わします。 Day: 符号無しの1バイト。このバイトは日にちを表わします。 Hour: 符号無しの1バイト。このバイトは時間の数を表わします。 Minute: 符号無しの1バイト。このバイトは分の数を表わします。 タイムゾーン 時間: 符号なし1バイト。このバイトは、タイムゾーンによる時差の時間部分と、時差が+かかを表わします。 タイムゾーン 分: 符号なし1バイト。このバイトは、タイムゾーンによる時差の分部分を表わします。 精度n 精度値は0~6の範囲で指定します。 |
SMALLINT | 2バイト | ビットの符号付き2進数値 |
VARCHAR(n) | m+2文字(m=32000) | 16 ビット整数、カウント m、その後に ascii 文字m |
VARBYTE(n) | m ≤ nで、m + 2 バイト | 16 ビット整数、カウントm、その後にmバイトのデータが続く |
GRAPHIC(n) | (n*2) バイト (nが指定されている場合)。それ以外の場合は、n = 1 と想定される 2 バイト | 説明: n個の2バイト文字(1nは、2バイト文字を単位とした入力ストリームの長さ) |
VARGRAPHIC(n) | m + 2 バイト m/2 ≤ n | 2 バイト整数の後に m/2 2 2 バイト文字が VARGRAPHICでもLONG VARGRAPHICでも、m(入力データの最初の2バイトを占める値)は、文字単位ではなくバイト単位の入力長さです。マルチバイト文字セット文字は、それぞれ 2 バイトです。
|
- GRAPHICデータ型
GRAPHICデータ型は、マルチバイト文字セットのデータを定義します。Teradata FastLoadは、サイトが漢字に定義されている場合、入力データにGRAPHICデータを受け入れます。
DEFINEコマンドがサポートする入力データ型は以下のとおりです。- GRAPHIC
- VARGRAPHIC
- LONG VARGRAPHIC
マルチバイト文字セット、およびマルチバイト文字が含まれているデータを入れることのできる形式には、次のものがあります。
- メインフレーム接続システムの「G」と「XG」
- ワークステーション接続システムの「XG」および標準の文字ストリング形式次のような場合に当てはまります。
構文要素 説明 “G” G’<....>’ 次のような場合に当てはまります。
「<」と「>」はそれぞれシフトアウト(0x0E)文字とシフトイン(0x0F)文字を表します:- その間に含まれるすべての文字は、その文字セットで有効な文字でなければなりません。
- シフトアウト/シフトイン内の文字数は偶数でなければなりません。
“XG” ‘hhhh’XG 次のような場合に当てはまります。- "hh" は 16 進数のペア (0 ~ 9 と A-F) を表します。
- 16進数の対1個によって1つのGRAPHIC文字を表わします。
- NULLIF句で最高80バイトを指定できるので、これは80対の16進数への変換になります。
- NULLIFデータ型の制限と制限
NULLIFオプションは、データ フィールドが特定の値の場合に表の中のある列をヌルにします。例として、値が0のフィールドはヌルの日付を表わすとします。この要件を満たすには、DEFINEコマンドのフィールド定義に次のように入力します。
DueDate (DATE, NULLIF = 0)
Teradata FastLoadは、NULLIF句に入力された値と実際のデータ行を比較します。一致する場合、ユーティリティは、該当する標識ビットをその行の列に対してONに設定し、行と標識ビット文字列の両方をデータベースに送信します。データベースは、列に NULL 値を挿入します。
VARCHARフィールドは、NULLIFストリングの長さが(データ行内の) 2 バイトの長さ標識フィールドと一致するかどうかを確認するために検査されます。比較されるのは、値が等しい場合だけです。値が 10 バイトに等しいNULLIF値の場合、Teradata FastLoadはデータ行の対応するフィールドの最初の 10 バイトと比較します。
FastLoadは、期間データ型列ではNULLIF句をサポートしていません。
以下の最小値と最大値は、アプリケーションによっては当てはまらない可能性があります。個々のプラットフォームの実行時環境が異なるためです。
次の表は、データ型ごとの制限を示しています。データ型による制限 データ型 限界値 例 BYTE 80桁以下の16進数で、単一引用符で囲み、偶数桁でなければなりません。 その16進文字列の後に"XB"が必要です。 バイト数の合計は、データ記述で指定されたバイト数の2倍以下でなければなりません。
文字は 0 ~ 9 または A-F の範囲内にする必要があります。
正しい例: DEFINE T1(BYTE (7), NULLIF = ’01’XB); DEFINE T1(BYTE (7), NULLIF = ’0123456789ABCD’XB);
正しくない例:
DEFINE T1(BYTE (7), NULLIF = ’0’XB) ; DEFINE T1(BYTE (7), NULLIF = ’0M’XB) ;
BYTEINT -128 ~ 127 の範囲内でなければなりません。 正しい例: DEFINE T1(BYTEINT, NULLIF = 123) ; DEFINE T1(BYTEINT, NULLIF = -123) ;
正しくない例:
DEFINE T1(BYTEINT, NULLIF = 129) ; DEFINE T1(BYTEINT, NULLIF = -129) ;
CHAR、CHARS、およびCHARACTERS 通常の文字列形式の場合、1 ~ 80 バイトを一重引用符で囲みます。 "XC"形式では、単一引用符で囲んだ80対以内の16進数。16進数は偶数個にする必要があり、"XC"が必要です。16進数の各対が1文字に対応します。
NULLIFオプションで定義されている文字数の合計は、データ定義で指定されている文字の数以下でなければなりません。文字比較操作は、大文字と小文字が区別され、最初の80バイトだけに適用されます。
正しい例: DEFINE T1(CHAR (7), NULLIF = ’ ’) ; DEFINE T1(CHAR (7), NULLIF = ’ABCDEFG’) ;
正しくない例:
DEFINE T1(CHAR (7), NULLIF = ’ABCDEFGH’) ; DEFINE T1(CHAR (7), NULLIF = ’ABCDEFGH’XC) ;
DATE INTEGER形式のみで、負の数は使えません。 正しい例: DEFINE T1(INTEGER, NULLIF = 123) ; DEFINE T1(DATE, NULLIF = 941015) ;
正しくない例:
DEFINE T1(DATE, NULLIF=94-10-15);
DECIMAL 38桁以内のゾーン形式の数によって指定することが必要です。 NULLIFオプションで定義される桁数は、データ定義で入力された桁数以下でなければなりません。NULLIF値の小数点以下の桁数が定義より多い場合、結果は未定義となります。
正しい例: DEFINE T1(DECIMAL (5,2), NULLIF = 0) ; DEFINE T1(DECIMAL (5,2), NULLIF = 123.45) ;
正しくない例:
DEFINE T1(DECIMAL (6,0), NULLIF = 1234567) ;
FLOAT 浮動小数点値は、データベースと他のプラットフォームの一部で異なる方法で表されます。その結果、エクスポートされた浮動小数点数との比較操作は正しく機能しないことがあります。 浮動小数点数の形式は以下のとおりです。
xxx.xxxまたはxx.xxE(+/-)yyまたはxE(+/-)yyまたはxxx
各種のプラットフォームにおける有効な浮動小数点数値の範囲は次のとおりです。- z/OS: 1E-36 から 1E+35
- UNIX OS: 4.94065645841246544e-324 to 1.79769313486231470e+308
- ウィンドウズ: 3.4e-38 から 3.4e+38
正しい例: DEFINE T1(FLOAT, NULLIF = 123) ;
GRAPHICとVARGRAPHIC 1 から 80 文字まで、単一引用符で囲む必要があります。 メインフレーム接続システムの場合、引用符で囲まれた文字列の前に"G"、または"XG"が続く必要があります。
ワークステーション接続システムの場合、引用符で囲まれた文字列の後に「XG」が続く場合がありますが、その前に「G」を付けることはできません。
"G"形式を使用する場合、NULLIF句で定義する文字数の合計は、データ記述で指定されているバイト数の2倍以下でなければなりません。
"XG"形式を使用する場合、NULLIF句で定義する16進数の合計桁数は、データ記述で指定されているバイト数の4倍以下でなければなりません。
GRAPHIC文字列またはVARGRAPHIC文字列の形式は次のとおりです。
G’<ABC>’ where <ABC> is the quoted string of valid MBC and the characters < and > represent 0x0E and 0x0F.
メインフレームに接続されたシステムで有効な例: DEFINE T1(GRAPHIC(4), NULLIF = G'<ABCDEFGH>'); DEFINE T1(GRAPHIC(4), NULLIF = G'<01234567>');
メインフレームに接続されたシステムでの無効な例:
DEFINE T1(GRAPHIC(4), NULLIF = G'<01234567ABCD>'); DEFINE T1(GRAPHIC(4), NULLIF = G'ABCD0123');
ワークステーション接続システムで有効な例:
DEFINE T1(GRAPHIC(4), NULLIF = 'ABCDEFGH'); DEFINE T1(GRAPHIC(4), NULLIF = '01234567');
ワークステーション接続システムでの無効な例:
DEFINE T1(GRAPHIC(4), NULLIF = G'<ABCDEFGH>'); DEFINE T1(GRAPHIC(4), NULLIF = G'<01234567>');
INTEGER 整数フィールドと日付フィールドは、 1~8196
の範囲内になければなりません正しい例: DEFINE T1(INTEGER, NULLIF = 123) ; DEFINE T1(DATE, NULLIF = 941015) ;
SMALLINT 小整数フィールドの範囲は次のとおりです。 1~8196
正しい例: DEFINE T1(SMALLINT, NULLIF = 123) ; DEFINE T1(SMALLINT, NULLIF = -123) ;
正しくない例:
DEFINE T1(SMALLINT, NULLIF = 32768) ; DEFINE T1(SMALLINT, NULLIF = -32769) ;
VARBYTE 80桁の16進数で、単一引用符で囲み、偶数桁でなければなりません。その16進文字列の後に"XB"が必要です。 VARCHAR 通常の文字列形式の場合、1 ~ 80 バイトを単一引用符で囲みます。 "XC" 形式の場合、最大 80 個の 16 進数のペアを 1 つの引用符で囲み、偶数にする必要があります。"XC"は必須であり、16進数の各対が1文字に対応します。
- 数値フィールド
すべてのフィールドのMAXIMUMとMINIMUMの範囲は、各マシン実装のデフォルト値です。これらの値は、実装によって制限されている場合を除き、一般的にデータベースに一致します。それらの値はメーカーにより文書化されているか、またはそのマシン用の"C"言語のマニュアルに記載されています。
- 表定義を使用したデータの定義
以下のコマンドのいずれかを使用して、参照表からフィールド名のリストを検索できます。
HELP TABLE tname ; INSERT tname.* ;
これらのコマンドを両方一緒に使用notください。さらに、以下のセッションでUnicodeデータを使用している場合は、INSERT文のtname.*バージョンを使用しないでください。この予防措置の詳細については、「使用上の注意」を参照してください。- KATAKANAEBCDICセッション
- 文字セット名の末尾が_0Iのセッション
- マルチバイト文字 (ASCII、EBCDIC など) をサポートしない文字セットを持つセッション。
この INSERT ステートメントの形式を使用Teradata FastLoad、テーブル定義からフィールド名のリストを作成します。挿入操作においてユーティリティは、表を定義するのに使用したCREATE TABLE文と表定義から、フィールド名とそれぞれのデータ型を取得します。
次の例では、INSERT文を使用して、Employeeという表のフィールド名のリストを取得します。
LOGON dbc/peterson,veep ; BEGIN LOADING Employee ERRORFILES Etable1, Etable2 ; DEFINE FILE = Accounts ; INSERT Employee.*;
次の例では、HELPコマンドを使用して、Employeeという表のフィールド名のリストを取得します。
LOGON dbc/peterson,veep ; BEGIN LOADING Employee ERRORFILES Etable1, Etable2 ; DEFINE FILE = INFILE ; HELP TABLE Employee ; INSERT INTO Employee (EmpNum, Name) VALUES (:EmpNum, :Name) ;
どちらの例でも、DEFINEコマンドも入力して、入力データ ソースまたはINMODパラメータを指定する必要があります。DEFINEコマンドが1行の入力行に入りきらない場合は、次のどちらかのようにします。
- 複数行にわたってコマンドを入力する
または
- DEFINEコマンドをいくつかに分ける
どちらの場合も、Teradata FastLoadはINSERTステートメントが入力されるまでフィールド定義を連結します。
また、複数のDEFINEコマンドを入力する場合は、そのすべてのフィールド定義を、入力データ レコードの中とまったく同じ順序にする必要があります(単一のDEFINEコマンドでそれらを入力した場合と同じにします)。さらに、1つのDEFINEコマンドだけにFILEまたはINMOD宣言を入れることができます。
- ANSI/SQL DateTimeデータ型の使用
DATEFORMコマンドを使用してANSIDATEをDATEデータ タイプとして指定すると、Teradata FastLoadは各DATEフィールドを CHAR(10) フィールドに内部的に変換します。Teradata FastLoad DEFINE コマンドで列/フィールド名を指定するには、すべての ANSI/SQL DateTime TIME, TIMESTAMP 型およびINTERVALデータ型を固定長CHARデータ型に変換する必要があります。
固定長CHARデータ型への変換後、セッション文字セットUTF-16使用する場合は、サイズを 2 倍にし、セッション文字セットUTF-8使用する場合は、サイズを 3 倍にする必要があります。
各ANSI/SQL DateTime仕様の変換仕様と形式の例については、以下を参照してください。- DATE
- 変換後: CHAR(10)
- TIME
- TIME (n)
- ここで、nは0から6までの小数点以下の桁数です。(デフォルト = 6。)
- TIMESTAMP
- TIMESTAMP (n)
- ここで、nは0から6までの小数点以下の桁数です。(デフォルト = 6。)
- TIME WITH TIME ZONE
- TIME (n) WITH TIME ZONE
- ここで、nは0から6までの小数点以下の桁数です。(デフォルト = 6。)
- TIMESTAMP WITH TIME ZONE
- TIMESTAMP (n) WITH TIME ZONE
- ここで、nは0から6までの小数点以下の桁数です。(デフォルト = 6。)
- INTERVAL YEAR
- INTERVAL YEAR (n)
- ここで、nは1から4までの桁数です。(デフォルト = 2。)
- INTERVAL YEAR TO MONTH
- INTERVAL YEAR (n) TO MONTH
- ここで、nは1から4までの桁数です。(デフォルト = 2。)
- INTERVAL MONTH
- INTERVAL MONTH (n)
- ここで、nは1から4までの桁数です。(デフォルト = 2。)
- INTERVAL DAY
- INTERVAL DAY (n)
- ここで、nは1から4までの桁数です。(デフォルト = 2。)
- INTERVAL DAY TO HOUR
- INTERVAL DAY (n) TO HOUR
- ここで、nは1から4までの桁数です。(デフォルト = 2。)
- INTERVAL DAY TO MINUTE
- INTERVAL DAY (n) TO MINUTE
- ここで、nは1から4までの桁数です。(デフォルト = 2。)
- INTERVAL DAY TO SECOND
- INTERVAL DAY (n) TO SECOND
- INTERVAL DAY TO SECOND (m)
- INTERVAL DAY (n) TO SECOND (m)
- 説明:
- nは1から4までの桁数です。(デフォルト = 2。)
- mは0から6までの小数点以下の桁数です。(デフォルト = 6。)
- INTERVAL HOUR
- INTERVAL HOUR (n)
- ここで、nは1から4までの桁数です。(デフォルト = 2。)
- INTERVAL HOUR TO MINUTE
- INTERVAL HOUR (n) TO MINUTE
- ここで、nは1から4までの桁数です。(デフォルト = 2。)
- INTERVAL HOUR TO SECOND
- INTERVAL HOUR (n) TO SECOND
- INTERVAL HOUR TO SECOND (m)
- INTERVAL HOUR (n) TO SECOND (m)
- 説明:
- nは1から4までの桁数です。(デフォルト = 2。)
- mは0から6までの小数点以下の桁数です。(デフォルト = 6。)
- INTERVAL MINUTE
- INTERVAL MINUTE (n)
- ここで、nは1から4までの桁数です。(デフォルト = 2。)
- INTERVAL MINUTE TO SECOND
- INTERVAL MINUTE (n) TO SECOND
- INTERVAL MINUTE TO SECOND (m)
- INTERVAL MINUTE (n) TO SECOND (m)
- 説明:
- nは1から4までの桁数です。(デフォルト = 2。)
- mは0から6までの小数点以下の桁数です。(デフォルト = 6。)
- INTERVAL SECOND
- INTERVAL SECOND (n)
- INTERVAL SECOND (n,m)
- 説明:
- nは1から4までの桁数です。(デフォルト = 2。)
- mは0から6までの小数点以下の桁数です。(デフォルト = 6。)
- 期間データ型の使用
期間は固定です。対象の期間での連続時間の粒度を表わします。
A period is implemented using a Period data type. 期間には、BEGIN(開始要素)とEND(終了要素)の2つの構成要素があり、ともに3つの日時データ型のうちの1つの要素タイプを持ちます。
CHARデータ型の場合、"n"はフィールドのサイズを表わします。PERIODデータ型の場合は、これとは異なり、"n"は精度(秒の小数部の桁数)を表わします。
PERIODデータは外部的には常にバイナリ形式で表わされます。
- データ型
Teradata表内でARRAYデータ型として定義されている列は、FIELDコマンドではVARHCARデータ型として指定しなければなりません。The external representation for an ARRAY data type is VARCHAR.
次に、COL003列に1次元のARRAYデータ型が含まれるTeradata表定義の例を示します。
CREATE SET TABLE SOURCE_TABLE ,NO FALLBACK , NO BEFORE JOURNAL, NO AFTER JOURNAL, CHECKSUM = DEFAULT, DEFAULT MERGEBLOCKRATIO ( EMP_ID INTEGER, EMP_NO BYTEINT, COL003 SYSUDTLIB.PHONENUMBERS_ARY, COL004 SYSUDTLIB.DECIMAL_ARY, COL005 SYSUDTLIB.INTEGER_ARY) UNIQUE PRIMARY INDEX ( EMP_ID );
以下はPHONENUMBERS_ARYデータ型のサンプル定義です。
CREATE TYPE PHONENUMBERS_ARY AS CHAR(10) CHARACTER SET LATIN ARRAY [2];
以下はDECIMAL_ARYデータ型のサンプル定義です。
CREATE TYPE DECIMAL_ARY AS DECIMAL(5,2) ARRAY[2];
以下はINTEGER_ARYデータ型のサンプル定義です。
CREATE TYPE INTEGER_ARY AS INTEGER ARRAY[2];
以下は、DEFINEコマンドでSOURCE_TABLE表に指定されるFastLoadフィールド定義のサンプルです。
EMP_ID (INTEGER), EMP_NO (BYTEINT), COL003 (VARCHAR(47)), COL004 (VARCHAR(17)), COL005 (VARCHAR(25))
上記の例では、COL003列がVARCHAR(47)として定義されており、表内でのCOL003の最大表示を47としています。
以下はCOL003列の最大表示の計算です。- 1バイト(左括弧)
- + 1バイト( 単一引用符)
- + 10~20バイト(1番目の要素)
- + 1バイト( 単一引用符)
- + 1バイト( カンマ)
- + 1バイト( 単一引用符)
- + 10 ~ 20バイト(2番目の要素)
- + 1バイト( 単一引用符)
- + 1バイト(右括弧)
- ----
- 47バイト
以下はCOL003列のサンプル データです。
サンプル データ1: ('3105551234','3105551234')
サンプル データ2: ('''''''''''''''''''''','''''''''''''''''''''')
サンプル データ1には、2つの電話番号要素が含まれています。サンプル データ2には、すべてが単一引用符の要素が2つ含まれています。
上記の例で、COL004列はVARCHAR(17)として定義されており、表内でのCOL004列の最大表示を17としています。
以下はCOL004列の最大表示の計算です。- 1バイト(左括弧)
- 最初の要素用に1~7バイトを追加
- + 1バイト( カンマ)
- 2番目の要素用に1~7バイトを追加
- + 1バイト(右括弧)
- ----
- 17バイト
以下はCOL004列のサンプル データです。
サンプル データ1: (-123.45,888.10)
サンプル データ2: (+123.45,-888.10)
上記の例で、COL005列はVARCHAR(25)として定義されており、表内でのCOL005の最大表示を25としています。
以下はCOL005列の最大表示の計算です。- 1バイト(左括弧)
- + 1~11バイト(1番目の要素)
- + 1バイト( カンマ)
- + 1~11バイト(1番目の要素)
- + 1バイト(右括弧)
- ----
- 25バイト
以下はCOL005列のサンプル データです。
サンプル データ1: (-2147483648,+2147483647)
サンプル データ2: (0,0)
Use the Teradata SQL "HELP TYPE" command to find out the maximum length for the ARRAY data type. 例えば、サンプルARRAYデータ型PHONENUMBERS_ARY、DECIMAL_ARY、INTEGER_ARY の情報は次のように表示されます。
help type PHONENUMBERS_ARY;
*** Help information returned. One row. *** Total elapsed time was 1 second. Name PHONENUMBERS_ARY Internal Type A1 External Type CV Max Length 47 Array(Y/N) Y Dimensions 1 Element Type CF UDT Name ? Array Scope [1:2] Total Digits ? Fractional Digits ? Contains Lob N Ordering F Ordering Category M Ordering Routine LOCAL Cast N Transform Y Method Y Char Type 1
HELP TYPE DECIMAL_ARY;
*** Help information returned. One row. *** Total elapsed time was 1 second. Name DECIMAL_ARY Internal Type A1 External Type CV Max Length 17 Decimal Total Digits ? Decimal Fractional Digits ? Contains Lob N Ordering F Ordering Category M Ordering Routine LOCAL Cast N Transform Y Method Y Char Type 1 Array(Y/N) Y Dimensions 1 Element Type D UDT Name ? Array Scope [1:2]
HELP TYPE INTEGER_ARY;
*** Help information returned. One row. *** Total elapsed time was 1 second. Name INTEGER_ARY Internal Type A1 External Type CV Max Length 25 Decimal Total Digits ? Decimal Fractional Digits ? Contains Lob N Ordering F Ordering Category M Ordering Routine LOCAL Cast N Transform Y Method Y Char Type 1 Array(Y/N) Y Dimensions 1 Element Type I UDT Name ? Array Scope [1:2]
HELP TYPEコマンドで返された情報から、サンプルARRAYデータ型PHONENUMBERS_ARYの最大長は47バイトであることが分かります。同じくDECIMAL_ARYの最大長は17バイト、INTEGER_ARYの最大長は25バイトとなっています。
ARRAYデータ型の外部表現の詳細については、Teradata Vantage™ - データ型およびリテラル, B035-1143を参照してください。
ARRAY使用する - セッション文字セットKANJISJIS_0Sの使用
使用するセッション文字セットがKANJISJIS_0Sされる場合、ロードされるテーブルの CHAR(n) または VARCHAR(n) が UNICODE 文字セットとして定義されている場合、DEFINEコマンドの対応するフィールドサイズは、それぞれ CHAR(n*2) または VARCHAR(n*2) である必要があります。
ロードされるテーブルの CHAR(n) または VARCHAR(n) が LATIN文字セットとして定義されている場合、DEFINEコマンドの対応するフィールド サイズは、それぞれ CHAR(n) または VARCHAR(n) と同じままです。