我将编写一个应该获得输入参数的过程,其类型为 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;
答案 0 :(得分:0)
在你的代码中错误的是。
`WHERE TBL1.ORGANIZATIONID IN (I_ORGANIZATION);`
没有集合类型的此类操作。
将其替换为member_of
TBL1.ORGANIZATIONID memeber_of I_ORGNAIZATION
或TBL1.ORGANIZATIONID in (select column_value from table(I_ORGANIZATION))
。
错误错误:PLS-00371。是在其他地方生成的。 您使用相同的标识符名称两次。例。
declare
a varchar2(100);
a number;
begin
a := 'aa';
end;