2015-05-15 89 views
1

我想從我的Java代碼中調用一個過程以從數據庫中刪除。下面是我的Java代碼和異常ORA-06550:第1行,第7列:PLS-00306:調用中參數的錯誤數量或類型

String procedureCall = "{call NEW_PORTING_PRC.delete_album_metadata(?)}"; 
         CallableStatement cal = conn.prepareCall(procedureCall); 
         cal.setString(1, catId); 
         cal.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR); 
         cal.execute(); 

的例外是:

ERROR ["http-bio-8080"-exec-9] (Content_005fDelete_jsp.java:45) - [15-05-15 14:16:01,912] - 
java.sql.SQLException: ORA-06550: line 1, column 7: 
PLS-00306: wrong number or types of arguments in call to 'DELETE_ALBUM_METADATA' 
ORA-06550: line 1, column 7: 
PL/SQL: Statement ignored 

任何人都可以建議我要去的地方錯了嗎?

+0

再添'在您的**程序中調用**,因爲您正在向它提供兩個參數。 – TSKSwamy

+0

我刪除了registerOutParameter()調用。現在我只有一個參數,但仍然出現錯誤。 – Rabindra

+0

您的程序需要多少個參數?你更新的異常是什麼? – TSKSwamy

回答

2

要傳遞一個參數到NEW_PORTING_PRC.delete_album_metadata程序和它的預期不同數量的參數

您傳遞一個varchar它期待一個號碼,日期等

+0

程序delete_album_metadata ( p_catalog_tab in varchar_tab ); – Rabindra

+0

以上是我在數據庫 – Rabindra

+0

中的過程,該過程似乎期待一個varchar_tab,我相信它是一個數組(我沒有自己使用它們),因此向其發送varchar可能是問題的原因。 – davegreen100

相關問題