我创建了一个RunnableJar(一个包含其他第三方jar的jar,例如iText.jar,java类等),并已使用loadjava
将RunnableJar.jar上传到Oracle数据库中。在罐子中,我有一个主要类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中的字符串由单引号而不是双引号分隔。