[英]Calling SQL Procedure: SQL exception - code: 6550 ORA-06550
Trying to call SQL
procedure: 试图调用SQL
过程:
PROCEDURE Incident_inqr
(MSISDN IN VARCHAR2
, Topic IN varchar2
,Incident_id IN varchar2 default '20120401'
, RESULT OUT number
);
java JDBC string: java JDBC字符串:
SQL command: begin ? := SMASTER.SERVICE.Incident_inqr ( '9308000050','6345_NN','20120401', ?); end;
the error (I'm getting it in Russian): 错误(我用俄语得到):
SQL exception - code: 6550 ORA-06550: Строка 1, столбец 13: PLS-00222: функция с именем 'INCIDENT_INQR' не существует в этой области действия ORA-06550: Строка 1, столбец 7: PL/SQL: Statement ignored SQL异常 - 代码:6550 ORA-06550:Строка1,столбец13:PLS-00222:функциясименем'INCIDENT_INQR'несуществуетвэтойобластидействияORA-06550:Строка1,столбец7:PL / SQL:语句被忽略
translated: 翻译:
SQL exception - code: 6550 ORA-06550: line 1, column 13: PLS-00222: function called 'INCIDENT_INQR' does not exist in this action area ORA-06550: line 1, column 7: PL / SQL: Statement ignored SQL异常 - 代码:6550 ORA-06550:第1行,第13列:PLS-00222:此操作区域中不存在名为'INCIDENT_INQR'的函数ORA-06550:第1行第7列:PL / SQL:语句被忽略
output ?
输出?
registration: 注册:
cs.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.VARCHAR);
cs.registerOutParameter(2, oracle.jdbc.driver.OracleTypes.NUMBER);
Incident_inqr
is a procedure. Incident_inqr
是一个过程。 So it has no return value but just the out
parameter. 所以它没有返回值,只有out
参数。
The proper way to call it thus is: 因此调用它的正确方法是:
begin SMASTER.SERVICE.Incident_inqr ( '9308000050','6345_NN','20120401', ?); end;
... ...
cs.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.NUMBER);
Furthermore, the procedure needs to be part of a package called 'SERVICE' in the schema / belonging to the user SMASTER
. 此外,该过程需要是模式/属于用户SMASTER
名为“SERVICE”的包的一部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.