java - 在 pl/sql 中将关联数组传递给 java

标签 java oracle plsql

我有一个带有输入参数的 Java 函数(HashMap >String, String> header, String url)

我想在 PL/SQL 中使用 Java 函数。

我读到与 PL/SQL 兼容的类型是关联数组。

但是我花了很多时间却找不到解决方案。

我创建了一个包来调用java函数,因为PL/SQL中的函数不能使用关联数组。

所以:

包装:

create or replace PACKAGE            SOLICITUDES_HTTP AS
 TYPE map_varchar2 IS TABLE OF VARCHAR2(255) INDEX BY VARCHAR2(255);
        Function Solicitud_Http_get (header IN map_varchar2,
    url IN VARCHAR2) return VARCHAR2;
END SOLICITUDES_HTTP;

编译成功

包体:

create or replace PACKAGE BODY SOLICITUDES_HTTP AS   
Function Solicitud_Http_get (header IN map_varchar2,
url IN VARCHAR2) 
RETURN VARCHAR2
IS LANGUAGE JAVA
NAME 'HTTP_Request.sendGet(java.util.HashMap,java.Lang.String) return java.lang.String';
END SOLICITUDES_HTTP;

编译失败

Error(17,30): PLS-00999: restricción de implantación (puede ser temporal) INDEX TABLE BY CHAR/VARCHAR2 parameters are disallowed

有人可以帮助我吗?

谢谢

最佳答案

您不能使用这样的 PL/SQL 关联数组 - 而是使用集合并修改您的 Java 代码以获取两个字符串数组:键之一;和值之一:

CREATE TYPE StringList IS TABLE OF VARCHAR2(255)
/

CREATE PACKAGE SOLICITUDES_HTTP AS
  FUNCTION Solicitud_Http_get(
    header_keys   IN StringList,
    header_values IN StringList,
    url           IN VARCHAR2
  ) return VARCHAR2;
END SOLICITUDES_HTTP;
/

CREATE PACKAGE BODY SOLICITUDES_HTTP AS
  FUNCTION Solicitud_Http_get(
    header_keys   IN StringList,
    header_values IN StringList,
    url           IN VARCHAR2
  ) return VARCHAR2
  IS LANGUAGE JAVA
    NAME 'HTTP_Request.sendGet(java.lang.String[],java.lang.String[],java.Lang.String) return java.lang.String';
END SOLICITUDES_HTTP;
/

关于java - 在 pl/sql 中将关联数组传递给 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49648081/

相关文章:

java - JDBC 领域表单例份验证

java - 如果从 PLSQL 调用 Java 方法,Synchronized 方法是否同步

plsql - 甲骨文 PL/SQL : Performance of CLOB data type in PL/SQL

windows - 无法使用所需的ORACLE_SID连接数据库

java - Spring JDBC 支持和大型数据集

java - 如何在java中解析后获取pl sql包的详细信息

java - Selenium 中的 sendKeys 函数出现无法聚焦元素错误

java - 菜单不起作用

java - 通过单击鼠标更改 JPanel 的颜色

sql - 如何获取参与 SQL for Oracle 的字段列表?