以下の表に、FIELDコマンドを使用する際の考慮事項を示します。
| 対象 | 使用上の注意 |
|---|---|
| コマンドの配置と頻度 | このFIELDコマンドは、LAYOUTコマンドの前になければなりません。 1つ以上のFIELDコマンド、またはFIELDコマンドとFILLERコマンドの組み合わせにより、入力データ レコードの構成を定義し、SELECT文のUSING修飾子の値を指定できます。 |
| ARRAYデータ型の指定 | 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]; 以下はSOURCE_TABLE表のFastExportレイアウト定義のサンプルです。 .FIELD EMP_ID * INTEGER; .FIELD EMP_NO * BYTEINT; .FIELD COL003 * VARCHAR(47); .FIELD COL004 * VARCHAR(17); .FIELD 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) Teradata SQL "HELP TYPE"コマンドを使用して、ARRAYデータ型の最大長を調べることができます。例えば、サンプル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を参照してください。 |
|
| DECIMALデータ型の指定 | datadescパラメータで実施したDECIMALデータ型指定では、次の入力長さとフィールド説明が適用されます。 DECIMAL (x)およびDECIMAL (x,y)
DECIMALデータ タイプの詳細については、Teradata Vantage™ - データ型およびリテラル, B035-1143を参照してください。 |
| Periodデータ型の指定 | 期間は固定です。対象の期間での連続時間の粒度を表わします。期間はPeriodデータ型で実装されます。各期間は次の2つの要素で構成されます。
要素型は次のDateTimeデータ型の1つです。
PERIODデータ タイプの詳細については、Teradata Vantage™ - データ型およびリテラル, B035-1143を参照してください。 |
| ANSI/SQL DateTimeデータ型の使用 | DATEFORMコマンドを使用して、ANSIDATEをDATEデータ タイプに指定すると、FastExportは、各DATEフィールドをCHAR(10)フィールドに内部変換します。FastExport FIELDコマンドで列/フィールド名を指定するためには、ANSI/SQL DateTimeのTIME、TIMESTAMP、およびINTERVALデータ タイプを固定長のCHARデータ タイプに変換する必要があります。 次の表は、ANSI/SQL DateTimeの各仕様について、変換の仕様とフォーマットの例を示しています。 |
以下は、ANSI/SQL Date Timeの仕様の説明です。
- 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)。(Default = 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。)