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 |
|
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データ型 例えば、次のようになります。
|
UDT (Structured) | CREATE TRANSFORMで定義された事前定義データ型 | プリミティブJavaデータ型 例えば、次のようになります。
|
XML | CLOB | java.sql.Clob |
変換オフ オプションの設定
テーブル演算子がテーブル データで作動し、複合型の個別の要素に対しアクセスおよび取得を行なえるようにする必要がある場合、その変換型は適していません。そのため、テーブル演算子がPeriod値とArray値が変換オフ形式またはアトマイズ形式で送信されるように要求できるオプションが提供されます。
RuntimeContractクラスのsetFormat()メソッドは、PDTTransformsOffおよびArrayTransformsOffに対応する形式属性の設定に使用できます。これらの形式属性は、PERIOD値とARRAY値が無変換形式で送受信される場合はTRUEに設定する必要があります。
変換オフのデータ値
変換オフモードがTRUEの場合、PERIOD値はjava.sql.Structオブジェクトとして送信され、配列は演算子に送信される入力ResultSetのjava.sql.Arrayオブジェクトとして送信されます。この後、演算子はjava.sql.Structクラスおよびjava.sql.Arrayクラスのメソッドを使用して、オブジェクトを操作できます。
同様に、演算子は出力データ値に対してjava.sql.Structとava.sql.Arrayオブジェクトを構築できます。