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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

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オブジェクトを構築できます。