0

hibernateクラスからユーザー定義オブジェクトを渡し、このオブジェクトのリストを読み取って処理を行うストアドプロシージャに渡したいと思います。どうすれば同じことができますか?

クラスは以下の通りです。

public class ExcelListenerBean {
    private int id;
    private String shortName;
    private String fmrCusip;
    private Double incorrectTrdShares;
    private Double incorrectTrdPrice;
    private String incorrectTrdBuySell;
    private Double incorrectTrdCommRate;
    private Double incorrectTrdCommission;
    private Double incorrectTrdFees;
    private Double incorrectTrdNet;
    private Double correctionTrdShares;
    private Double correctionTrdPrice;
    private String correctionTrdBuySell;
    private Double correctionTrdCommRate;
    private Double correctionTrdCommission;
    private Double correctionTrdFees;
    private Double correctionTrdNet;
    private String currency;
    private String fx;
    private Double netUSD;
    private String notes;
}

プロシージャのドラフト方法と、ExcelListenerBeanオブジェクトのリストをループしてテーブルに保存する方法を教えてください。

4

1 に答える 1

0
  1. MyType is OBJECT ....必要なすべてのフィールドを含むオブジェクトタイプを作成します。たとえば、Oracleで作成します。
  2. コレクションタイプを作成します。TableOfMyObject IS TABLE OF MyObjectType
  3. パラメータをとるプロシージャを作成TableOfMyObjectします。

次のようなストアドプロシージャのSQLステートメントでコレクション変数を使用できます。 SELECT * FROM TABLE(collection_variable)

私も同じことをしましたが、最大の課題は、休止状態を使用してアプリから呼び出すことでした-私はついにそれを行う方法を見つけました。

Toadから実行できるSQLを更新します。

set serveroutput on; -- for debugging, 
-- it makes sense if your procedure outputs anything
declare my_list TableOfMyObject  := TableOfMyObject ();
begin 
  my_list.extend;
  my_list(1) := MyType([MyType constructor parameters]);

  my_list.extend;
  my_list(2) := MyType([MyType constructor parameters]);
  your_procedure(my_list);
end;
于 2012-12-20T13:35:24.297 に答える