ARRAYデータ型の指定 - Parallel Data Pump

Teradata® Parallel Data Pump リファレンス

Product
Parallel Data Pump
Release Number
17.00
Published
2020年6月
Language
日本語
Last Update
2021-01-07
dita:mapPath
ja-JP/ioq1544831946920.ditamap
dita:ditavalPath
ja-JP/ioq1544831946920.ditaval
dita:id
B035-3021
Product Category
Teradata Tools and Utilities

TeradataテーブルのARRAYデータ型として定義される列は、Teradata TPumpのFIELD文でVARCHARデータ型として指定する必要があります。ARRAYデータ型の外部表現はVARCHARです。

次に、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テーブルのLAYOUTの定義例を示します。

  .LAYOUT EMPDATAWITHARRAY;
  .FIELD  EMP_ID * INTEGER;
  .FIELD  EMP_NO * BYTEINT;
  .FIELD  COL003 * VARCHAR(47);
  .FIELD  COL004 * VARCHAR(17);
  .FIELD  COL005 * VARCHAR(25;

上記の例では、COL003列はVARCHAR(47)と定義されています。これは、テーブルのCOL003列における表現の最大数がこの値であるためです。

以下は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列のデータの例を2つ示します。

サンプル データ 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)

ARRAYデータ型の最大長を調べるには、Teradata SQLの「HELP 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を参照してください。