使用java.util.collection数据类型作为PL / SQL中的输入参数

时间:2017-04-24 08:46:23

标签: collections plsql jasper-reports parameter-passing

我将编写一个应该获得输入参数的过程,其类型为 Java.Util.Collection 。实际上,我在 Jaspersoft Studio 中有一个报告,它收到 Java.Util.Collection 参数并根据参数的数据生成报告。另外,我想在数据库包中编写查询,我不知道如何将 Java.Util.Collection 类型的输入参数传递给 PL / SQL 。 此外,我已经像这样

在包中声明了类型

TYPE COLLECTION_TYPE IS TABLE OF VARCHAR2(10);

并将其用作 procedure 中的参数类型,而当我想编译我的包

时会出现错误

Error: PLS-00371: at most one declaration for 'COLLECTION_TYPE' is permitted

请您指导我解决这个问题吗? 我的 PL / SQL 代码如下代码 提前致谢。

PROCEDURE procedure_name(I_ORGANIZATION IN COLLECTION_TYPE, O_CURSOR OUT SYS_REFCURSOR) AS BEGIN OPEN O_CURSOR FOR SELECT TBL1.NAME FROM tbl_name TBL1 WHERE TBL1.ORGANIZATIONID IN (I_ORGANIZATION); END;

1 个答案:

答案 0 :(得分:0)

在你的代码中错误的是。

`WHERE TBL1.ORGANIZATIONID IN (I_ORGANIZATION);` 

没有集合类型的此类操作。 将其替换为member_of TBL1.ORGANIZATIONID memeber_of I_ORGNAIZATIONTBL1.ORGANIZATIONID in (select column_value from table(I_ORGANIZATION))

错误错误:PLS-00371。是在其他地方生成的。 您使用相同的标识符名称两次。例。

declare 
 a varchar2(100);
 a number;
begin 
 a := 'aa';
end;