0
我在Oracle中創建了一個用戶類型現在聲明通過Java類
create or replace type my_array_list
is
table of
varchar2(100);
我寫具有輸出參數是這樣一個過程OUT參數:
type my_list_rec IS record
(
best_friends my_array_list,
good_friends my_array_list
);
type my_list_array is table of my_list_rec;
procedure friends_diff_prc(my_name in varchar2,
my_friend_list_o out my_list_array ,
rc_o out number);
現在我打電話這個過程通過我的JAVA類擴展爲StoredProcedure
。
// Declare output parameter
declareParameter(new SqlOutParameter(
PropertiesReader
.getPropertyValue(FRIENDSConstants.GET_FRIEND_LIST_OUT),
OracleTypes.ARRAY,"MYDB.MY_ARRAY_LIST"));
但是,當我打電話一個進程,我得到
org.springframework.jdbc.BadSqlGrammarException:
我是正確的聲明OUT參數? 而我如何解析輸出參數的內容?
在此先感謝。
你能告訴我們關於你的第二個建議嗎? – vikiiii
您無法直接從java調用具有PLSQL類型的過程。因此,您需要修改過程來獲取SQL類型,或者您可以構建將進行轉換的包裝器PLSQL過程。例如,PL/SQL記錄將被轉換爲SQL對象。在你的情況下,因爲你有一個表的記錄表(哎!),你的包裝可以採取兩個SQL數組,例如,使一個表與兩個數組中的一個記錄。 –