簡體   English   中英

將用戶定義的列表從休眠傳遞到oracle存儲過程

[英]Passing user defined list from hibernate to oracle stored procedure

我想從休眠類中傳遞用戶定義的對象,並將其傳遞到存儲過程中,該存儲過程將讀取該對象列表並進行處理。 我該怎么做?

該類如下。

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對象列表並將其保存到表中。

  1. 在Oracle中創建OBJECT類型,比如說MyType is OBJECT .... ,它具有您需要的所有字段
  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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM