2012-02-10 1 views
0

としてカーソルとTIBCOのBWからストアドプロシージャを呼び出し:私は次のシグネチャを有するTIBCOに実行すべき設けられたストアドプロシージャ(SP)が入力

PROCEDURE GET_STOCK_QTY(
    WarehouseId Number, 
    LineItem ref_lines, 
    ResponseCode OUT Number, 
    ResponseDesc OUT Varchar2, 
    RespLineItems OUT sys_refcursor 
); 

を* ref_lines *として定義されています次のようになります:

TYPE items_record is RECORD(
    ItemCode varchar2(15), 
    ItemQuantity number 
); 
type ref_lines IS REF CURSOR RETURN items_record; 

あなたがすでに気づいたように、私はSPの入出力としてカーソルを持っています。私はすでにこの種の問題を捜し求めており、tibcoはこれらのタイプの入出力をサポートしていないことを知りました。私はブール型ネイティブタイプもサポートしていません。 Eitherwayは、私が読んだもののために、2つの解決策が進んでいる:今

  1. SQL直接
  2. Javaのカスタム機能

、私の疑問。

ソリューションナンバー1を使用する場合は、純粋なSQLで入力として提供するカーソルを作成する必要がありますが、どうすればそれを行うつもりですか?私は、入力のために持っている値を持つ一時テーブルを作成し、そのテーブルのカーソルをオープンする必要がありますか?これを行うにはこれが唯一の方法ですか?

私はまだ解決策2を調査していませんが、Javaがこれらの種類の入力と出力をサポートできると思い、配列を宣言しました。この仮定は正しいのでしょうか?これは簡単でしょうか、またはソリューションナンバー1のようにSQLを呼び出すでしょうか?

PS:これは2つの可能な解決策ですか? BWがこのWEIRD入力と出力をサポートするための回避策があるtibco Guruはいますか? :P事前に

おかげで、私はこの問題を克服するために管理する唯一の方法をグーグルの多くは、入力と出力TIBCOをカプセル化するデータベースのラッパー・パッケージを作成することでした後 ティアゴBrunhosoヌネス

+0

私は、この種のストアドプロシージャが外部アプリケーションから呼び出されるはずのものではないと思うようになっています。私は正しい? – Omniausente

答えて

0

できることを認識できませんでした。私は今のところ何をやったか

た:

  1. 作成した2つの新しいテーブル(入力カーソルの1と出力用の別)。
  2. 単純なデータ型のみを入力と出力として受け入れるラッパーSPを作成しました。
  3. Tibcoは、作成されたテーブルに値の入力配列を挿入します。
  4. ラッパーSPはカーソルをこのテーブルに開き、カーソルを持つ最初のSPを呼び出します。
  5. 最後に、出力テーブルを出力カーソルの値で埋めると、Tibcoはこのテーブルを読み取ります。

(私はおそらくそれがこれを行うための最善の方法ではないことを知っている...:S)

PS:これは、OracleのPL SQLのネイティブXML入力をサポートし、私ができることを私の知識に来ましたそのソリューションに行ったことがありますが、これははるかにクリーンなものですが、実装には時間がかかりすぎます...誰かがこれに関する知識を持っていれば、私はいくつかのヒントを感謝します!:)