繁体   English   中英

在Oracle数据库中调用Java存储过程时出错

[英]Error while calling java stored procedure in oracle database

我创建了一个RunnableJar(一个包含其他第三方jar的jar,例如iText.jar,java类等),并使用loadjava在Oracle数据库中上传了该RunnableJar.jar。 在罐子中,我有主类GetOffer ,因为我有一个public String getOffer(String param1) { }方法,该方法的用途是根据用户选择创建多个pdf并将它们连接起来。

现在,我创建了存储过程:

create or replace function getOffer(param1 in varchar2) return varchar2
    is language java name 'GetOffer.getOffer(java.lang.String) return java.lang.String';

我使用以下调用语句调用了此存储过程:

SQL> VARIABLE  myString  VARCHAR2(20);
SQL> CALL getOffer("XYZ") INTO :myString

调用过程时,出现以下错误:

SQL> VARIABLE  myString  VARCHAR2(20);
SQL> CALL getOffer("XYZ") INTO :myString
 2  ;
CALL getOffer("Any String") INTO :myString
 *
ERROR at line 1:
ORA-06576: not a valid function or procedure name

我怎么解决这个问题?

您发布的代码正在创建存储功能,而不是存储过程。 如果要调用一个函数

SELECT getOffer('xyz')
  INTO :myString
  FROM dual;

还要记住,SQL和PL / SQL中的字符串由单引号而不是双引号分隔。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM