我在oracle中有一個自定義函數,在刪除記錄後返回一個數字。我可以在sql_plus得到一個值,如如何調用自定義Oracle函數返回JPA的值
call my_function(4) into :out_number;
其中out_number是被定義爲數字的變量。
我可以驗證out_number在我做「PRINT OUT_NUMBER」時有一個值。
我的問題是如何從JPA調用這個函數。
我已經試過像
Query query = em.createNativeQuery("{call my_function(?)}");
query.serParameter(1, 4);
return query.executeUpdate();
,並得到基本創建my_function沒有定義的錯誤。我如何獲得SQL_PLUS中CALL ... INTO的返回值?
如果這種方法不可取,有人可以推薦任何建議嗎? JPA是目前唯一的選擇。我可以創建一個存儲過程,但我不確定是否可以從中獲取返回值,因爲OUT參數不受支持。
感謝您的幫助提前!
Tulskiy,我不能使用'select ... from dual',因爲my_function執行刪除語句(DML)。我試圖使用BEGIN my_function(?);結束;但是,我沒有運氣來獲得回報價值。 –