我创建了一个RunnableJar(包含其他第三方jar的jar,如iText.jar,java类等等),我使用loadjava
在Oracle数据库中上传了RunnableJar.jar。在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
我该如何解决这个问题?
答案 0 :(得分:1)
您发布的代码是创建存储函数,而不是存储过程。如果你想调用一个函数
SELECT getOffer('xyz')
INTO :myString
FROM dual;
请记住,SQL和PL / SQL中的字符串由单引号分隔,而不是双引号。