Вызов процедуры SQL: исключение SQL - код: 6550 ORA-06550 - PullRequest
3 голосов
/ 30 марта 2012

Пытается вызвать SQL процедуру:

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);

1 Ответ

2 голосов
/ 30 марта 2012

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

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

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

...

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...