2015-05-15 5 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

добавить еще ' место владельца 'в вашем ** procedureCall **, поскольку вы поставляете ему два аргумента. – 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

Смежные вопросы