Javaテーブル演算子のデフォルトの変換動作と変換オフの形式 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQL外部ルーチン プログラミング

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/uhh1512082756414.ditamap
dita:ditavalPath
ja-JP/uhh1512082756414.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

UDTとCDTデータ値のデフォルトの変換動作

テーブル演算子に送信される入力UDTデータ値およびCDTデータ値は、デフォルトの変換形式です。これは、UDTのSQL変換型または別の事前定義型に対応します。UDT値とCDT値は、UDTまたはCDTに対して定義されているデフォルトの変換関数を呼び出して、対応する変換型に変換されます。以下のテーブルに、テーブル演算子に渡されるUDTデータ型およびCDTデータ型の変換型を示します。

このモードはデータ値のインポートとエクスポートを行なう演算子(T2TまたはT2M)のコネクタタイプに適しています。

一部のUDTおよびCDT (XML、ST_Geometry、DATASET、JSONなど)で複数の変換グループがサポートされていることに注意してください。ただし、テーブル演算子の場合、CDT値は常にデフォルト変換型を使用して送信されます。例えば、JSONデータ値は常にCLOBとして送信されます。

SQL UDTまたは複合データ型 SQLデータ型のマッピング Javaデータ型
ARRAY/VARRAY VARCHAR (定義されている変換型)

java.lang.String

BSON BLOBまたはCLOB
  • java.sql.Blob
  • java.sql.Clob
DATASET – Avro BLOB

java.sql.Blob

DATASET – CSV CLOB

java.sql.Clob

Geospatial – MBB VARCHAR

java.lang.String

Geospatial – MBR VARCHAR

java.lang.String

Geospatial – ST_Geometry CLOB

java.sql.Clob

JSON CLOB

java.sql.Clob

PERIOD VARCHAR

java.lang.String

UDT (Distinct) UDTの基礎となる事前定義データ型

プリミティブJavaデータ型

例えば、次のようになります。
  • int
  • 短期
  • java.lang.String
  • java.sql.Clob
  • java.sql.Blob
UDT (Structured) CREATE TRANSFORMで定義された事前定義データ型

プリミティブJavaデータ型

例えば、次のようになります。
  • int
  • 短期
  • java.lang.String
  • java.sql.Clob
  • java.sql.Blob
XML CLOB

java.sql.Clob

変換オフ オプションの設定

テーブル演算子がテーブル データで作動し、複合型の個別の要素に対しアクセスおよび取得を行なえるようにする必要がある場合、その変換型は適していません。そのため、テーブル演算子がPeriod値とArray値が変換オフ形式またはアトマイズ形式で送信されるように要求できるオプションが提供されます。

RuntimeContractクラスのsetFormat()メソッドは、PDTTransformsOffおよびArrayTransformsOffに対応する形式属性の設定に使用できます。これらの形式属性は、PERIOD値とARRAY値が無変換形式で送受信される場合はTRUEに設定する必要があります。

STRUCTURED型UDTに対して変換オフ オプションを有効にすることはできません。

変換オフのデータ値

変換オフモードがTRUEの場合、PERIOD値はjava.sql.Structオブジェクトとして送信され、配列は演算子に送信される入力ResultSetのjava.sql.Arrayオブジェクトとして送信されます。この後、演算子はjava.sql.Structクラスおよびjava.sql.Arrayクラスのメソッドを使用して、オブジェクトを操作できます。

同様に、演算子は出力データ値に対してjava.sql.Structとava.sql.Arrayオブジェクトを構築できます。