私はAとBの2つのスキーマ(Oracle 9)を持っています。 Aでは、Bへのdblinkがあります。Bでは、Aから呼び出されるパッケージがあります.Bパッケージのプロシージャは、さまざまなカウント結果を返すことができます。コレクションを返す方が良い理由です。Oracleのsqlタイプがdblinkより
create type B.tr_rad as object (
name varchar2(64)
,code number
,vendor number
,val varchar2(255)
,num number
);
create type B.tt_rad as varray(256) of B.tr_rad;
しかし、データベース・リンクによってSQL-タイプを使用してはサポートされていないので、私はtt_radタイプを使用することはできませんスキームから。 DBMS_SQLはサポートされていないカーソルです。同じOIDを持つ型の作成は不可能です。
私は一時テーブルを使用すると思います。しかし、まずそれは良い(遠隔関数が値を返すと、呼び出し側はリモートテーブルからコレクションを選択しなければならない)。また、一時テーブルでの作業が遅くなる恐れがあります。
多分代替の相互作用を知っている人はいますか?
OIDソリューションは私のマシン上で動作します。どのOracleのバージョンを使用しましたか? – tuinstoel
これはかなり前のことでした(おそらく8、おそらく9i)。私の具体的な問題は、CLOBSまたはVARCHAR2(4000)が爆発したことでした。 javaパスを使用すると、DBLinkの制限を回避できます。 –
8と9は少し古いです。私のマシンではOIDを使用していますが、Oracle 11.1からOracle 10.2へのリンクを作成しました。 – tuinstoel