java - 在oracle数据库中调用java存储过程时出错

标签 java oracle jar

我创建了一个 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/

相关文章:

java - 我需要帮助在 android 查询生成器中选择不同的列值

java - 对 Oracle java 存储过程中的类解析的混淆

java - 在 JDeveloper 11g 中找不到 mySQL 驱动程序类

java - 在 jar 文件中设置 java.library.path

java - 用于访问本地文件系统的 Applet 框架

java - 从程序中更改 persistence.xml 中的值

Java Springboot Hibernate 设置 Oracle 数据库 session 参数

java - 您可以使用文件访问 jar 内的项目吗

java - 无法使用相对路径从资源文件夹获取 JSON 文件

java - log4j2 标记和已启用