2012-03-30 2 views
3

Попытка вызвать SQL процедуру:Вызов SQL Процедура: SQL исключение - код: 6550 ORA-06550

PROCEDURE Incident_inqr 
(MSISDN IN VARCHAR2 
, Topic IN varchar2 
,Incident_id IN varchar2 default '20120401' 
, RESULT OUT number 
); 

Java JDBC строка:

SQL command: begin ? := SMASTER.SERVICE.Incident_inqr ('9308000050','6345_NN','20120401', ?); end; 

ошибка (я получаю по-русски):

SQL исключение - код: 6550 ORA-06550: Строка 1, столбец 13: PLS-00222: функция с именем 'INCIDENT_INQR' не существует в этой области действия ORA-06550: Строка 1, столбец 7: PL/SQL: Заявление игнорировали

перевел:

SQL исключение - код: 6550 ORA-06550: строка 1, столбец 13: PLS-00222: функция называется 'INCIDENT_INQR' не существует в этой области действия ORA-06550: строка 1, столбец 7: PL/SQL: Заявление игнорировали

Выход ? регистрации:

cs.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.VARCHAR); 
cs.registerOutParameter(2, oracle.jdbc.driver.OracleTypes.NUMBER); 

ответ

2

Incident_inqr представляет собой процедуру. Таким образом, он не имеет возвращаемого значения, а только параметр out.

Правильный способ назвать это таким образом:

begin SMASTER.SERVICE.Incident_inqr ('9308000050','6345_NN','20120401', ?); end; 

...

cs.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.NUMBER); 

Кроме того, процедура должна быть частью пакета под названием «SERVICE» в схеме /, принадлежащей пользователю SMASTER.

+0

_Incident_inqr - это процедура. Таким образом, он не имеет возвращаемого значения, а только параметр out._ <- Это была проблема – VextoR

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

  • Нет связанных вопросов^_^