2016-02-13 90 views
2

我有一個Oracle Efficientble函數(我無法更改),我需要從Hibernate調用。從休眠調用Oracle存儲功能

CREATE OR REPLACE EDITIONABLE FUNCTION 
"SCHEMA"."FUNCTION_NAME" 
(
    var1 IN CHAR DEFAULT NULL , 
    var2 IN CHAR DEFAULT NULL , 
    var3 OUT CHAR 
) 
RETURN NUMBER 
AS 
    ... 
END; 

不幸的是,我不知道該怎麼做。我在這裏看到了一些關於Session.doWork()的文章,但我無法弄清楚如何在這裏完成這項工作。

回答

1

只要該功能不改變數據,您可以使用雙表從查詢中調用它。

select schema.function_name(:bind1,:bind2,:bind3) from dual; 
1

你可以嘗試這樣的:

Query query = session.createSQLQuery(
    "CALL myfunc(:param1)") 
    .setParameter("param1", "xyz");