9.5.20. Oracle translator(oracle)
また、「 JDBC 翻訳者」の情報 も参照してください。
タイプ名 oracle で認識される Oracle トランスレーターは、Oracle Database 9i 以降と使用します。
Oracle が提供する JDBC ドライバーは大量のメモリーを使用します。ドライバーはバッファーに大量のデータをキャッシュするため、十分なメモリー割り当てがないコンピューターで問題が発生する可能性があります。
詳しい情報は、以下の資料を参照してください。
インポーターのプロパティー
- useGeometryType
SDO_GEOMETRY のソースタイプで列をインポートする場合は、Data Virtualization Geometry タイプを使用します。デフォルトは false です。
注記Oracle からのメタデータのインポートは時間がかかる可能性があります。スキーマ名フィルターは、最低でも指定することが推奨されます。メタデータクエリーのフェッチサイズを増やすことができる
useFetchSizeWithLongColumn=true
接続プロパティー もあります。特にスキーマに多くのテーブルがある場合に、メタデータの負荷プロセスが大幅に改善します。
実行プロパティー
- OracleSuppliedDriver
-
Oracle が提供するドライバー(通常は ojdbc のプレフィックス)が使用されていることを示します。デフォルトは true です。DataDirect またはその他の Oracle JDBC ドライバーを使用する場合は
false
に設定します。
Oracle 固有のメタデータ
- シーケンス
Oracle トランスレーターでシーケンスを使用できます。シーケンスを DUAL のソースで名前でテーブルとしてモデル化し、ソースの列名を <
sequence name>.[nextval|currval]
に設定します。Data Virtualization 10.0+ を使用すると、シーケンスを自動的にインポートできます。
詳細は、「 JDBC 翻訳者における Importer プロパティー 」を参照して ください。Data Virtualization 8.4 およびそれ以前 Oracle Sequence DDL
CREATE FOREIGN TABLE seq (nextval integer OPTIONS (NAMEINSOURCE 'seq.nextval'), currval integer options (NAMEINSOURCE 'seq.currval') ) OPTIONS (NAMEINSOURCE 'DUAL')
CREATE FOREIGN TABLE seq (nextval integer OPTIONS (NAMEINSOURCE 'seq.nextval'), currval integer options (NAMEINSOURCE 'seq.currval') ) OPTIONS (NAMEINSOURCE 'DUAL')
Data Virtualization 8.5 では、テーブルの表現と、シーケンスに Oracle 固有の処理に依存する必要がなくなりました。
ソース関数としての通貨と 次
の
バルブを示す方法は、「 スキーマオブジェクトの DDL メタデータ」を参照してください。
8.5 の例: ネイティブクエリーのシーケンス
CREATE FOREIGN FUNCTION seq_nextval () returns integer OPTIONS ("teiid_rel:native-query" 'seq.nextval');
CREATE FOREIGN FUNCTION seq_nextval () returns integer OPTIONS ("teiid_rel:native-query" 'seq.nextval');
列を autoincrement に設定し、source の名前を < element name>:SEQUENCE=<sequence name>.<sequence value> に設定すると、列の挿入のデフォルト値としてシーケンスを使用することもできます
。
Rownum
rownum
列を Oracle 物理テーブルに追加して、rownum 擬似列の使用を有効にすることもできます。rownum 列には、 rownum
のソースの名前が必要です。これらの rownum 列には Oracle rownum コンストラクトと同じセマンティクスがないため、使用時に注意する必要があります。
パラメーターの結果セット
この手順のパラメーターは、結果セットを返すためにも使用できます。自動インポートで正しく表現されていない場合には、結果セットを手動で作成し、ネイティブタイプ REF CURSOR
で output パラメーターを表す必要があります。
out パラメーターの結果セットの DDL
create foreign procedure proc (in x integer, out y object options (native_type 'REF CURSOR')) returns table (a integer, b string)
create foreign procedure proc (in x integer, out y object options (native_type 'REF CURSOR'))
returns table (a integer, b string)
地理的な機能
Oracle のトランスレーターでは、以下の地理的な機能を使用できます。
- Relate = sdo_relate
CREATE FOREIGN FUNCTION sdo_relate (arg1 string, arg2 string, arg3 string) RETURNS string; CREATE FOREIGN FUNCTION sdo_relate (arg1 Object, arg2 Object, arg3 string) RETURNS string; CREATE FOREIGN FUNCTION sdo_relate (arg1 string, arg2 Object, arg3 string) RETURNS string; CREATE FOREIGN FUNCTION sdo_relate (arg1 Object, arg2 string, arg3 string) RETURNS string;
CREATE FOREIGN FUNCTION sdo_relate (arg1 string, arg2 string, arg3 string) RETURNS string;
CREATE FOREIGN FUNCTION sdo_relate (arg1 Object, arg2 Object, arg3 string) RETURNS string;
CREATE FOREIGN FUNCTION sdo_relate (arg1 string, arg2 Object, arg3 string) RETURNS string;
CREATE FOREIGN FUNCTION sdo_relate (arg1 Object, arg2 string, arg3 string) RETURNS string;
- Nearest_Neighbor = sdo_nn
CREATE FOREIGN FUNCTION sdo_nn (arg1 string, arg2 Object, arg3 string, arg4 integer) RETURNS string; CREATE FOREIGN FUNCTION sdo_nn (arg1 Object, arg2 Object, arg3 string, arg4 integer) RETURNS string; CREATE FOREIGN FUNCTION sdo_nn (arg1 Object, arg2 string, arg3 string, arg4 integer) RETURNS string;
CREATE FOREIGN FUNCTION sdo_nn (arg1 string, arg2 Object, arg3 string, arg4 integer) RETURNS string;
CREATE FOREIGN FUNCTION sdo_nn (arg1 Object, arg2 Object, arg3 string, arg4 integer) RETURNS string;
CREATE FOREIGN FUNCTION sdo_nn (arg1 Object, arg2 string, arg3 string, arg4 integer) RETURNS string;
- Within_Distance = sdo_within_distance
CREATE FOREIGN FUNCTION sdo_within_distance (arg1 Object, arg2 Object, arg3 string) RETURNS string; CREATE FOREIGN FUNCTION sdo_within_distance (arg1 string, arg2 Object, arg3 string) RETURNS string; CREATE FOREIGN FUNCTION sdo_within_distance (arg1 Object, arg2 string, arg3 string) RETURNS string;
CREATE FOREIGN FUNCTION sdo_within_distance (arg1 Object, arg2 Object, arg3 string) RETURNS string;
CREATE FOREIGN FUNCTION sdo_within_distance (arg1 string, arg2 Object, arg3 string) RETURNS string;
CREATE FOREIGN FUNCTION sdo_within_distance (arg1 Object, arg2 string, arg3 string) RETURNS string;
- Nearest_Neigher_Distance = sdo_nn_distance
CREATE FOREIGN FUNCTION sdo_nn_distance (arg integer) RETURNS integer;
CREATE FOREIGN FUNCTION sdo_nn_distance (arg integer) RETURNS integer;
- filter = sdo_filter
CREATE FOREIGN FUNCTION sdo_filter (arg1 Object, arg2 string, arg3 string) RETURNS string; CREATE FOREIGN FUNCTION sdo_filter (arg1 Object, arg2 Object, arg3 string) RETURNS string; CREATE FOREIGN FUNCTION sdo_filter (arg1 string, arg2 object, arg3 string) RETURNS string;
CREATE FOREIGN FUNCTION sdo_filter (arg1 Object, arg2 string, arg3 string) RETURNS string;
CREATE FOREIGN FUNCTION sdo_filter (arg1 Object, arg2 Object, arg3 string) RETURNS string;
CREATE FOREIGN FUNCTION sdo_filter (arg1 string, arg2 object, arg3 string) RETURNS string;
pushdown 関数
Oracle のバージョンに応じて、Oracle トランスレーターによって、以下の地理的なプッシュダウン機能をエンジンに登録します。
- TRUNC
- 数値バージョンとタイムスタンプバージョンの両方。
- LISTAGG
- requires the Data Virtualization SQL syntax "LISTAGG(arg [, delim] ORDER BY …)"(Data Virtualization SQL 構文 "LISTAGG(arg [, delim] ORDER BY …)" が必要)
SQLXML
Oracle から SQLXML の値を取得し、代わりに oracle.xdb.XMLType または OPAQUE インスタンスを取得する必要がある場合は、以下の変更を加えます。
- クライアントドライバーバージョン 11 以降を使用します。
-
xdb.jar
およびxmlparserv2.jar
ファイルをクラスパスに配置します。 システムプロパティー
oracle.jdbc.getObjectReturnsXMLType="false"
を設定します。詳細は、Oracle のドキュメント を参照し てください。