我创建了一个 RunnableJar(一个包含 iText.jar、java 类等其他第三方 jar 的 jar),并使用 loadjava
将 RunnableJar.jar 上传到 Oracle 数据库中。在 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 中的字符串是用单引号而不是双引号分隔的。
关于java - 在oracle数据库中调用java存储过程时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17112129/