以下の表に、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。)