将值列表作为输入参数传递给 PL/SQL 过程
Posted
技术标签:
【中文标题】将值列表作为输入参数传递给 PL/SQL 过程【英文标题】:pass list of values as input parameter to PL/SQL procedure 【发布时间】:2014-02-06 14:11:20 【问题描述】:您好,我有一个要求,我需要在 PL/SQL 过程中获取输入参数的值列表。输入列表的大小是动态的。如何处理这个要求有什么帮助?
【问题讨论】:
【参考方案1】:CREATE OR REPLACE PACKAGE PKG_TEST AS
TYPE X IS TABLE OF VARCHAR2(30);
PROCEDURE XYZ(Y IN X);
END PKG_TEST;
/
类型可以声明为“TABLE OF”或“VARRAY(10)”;
CREATE OR REPLACE PACKAGE BODY PKG_TEST AS
PROCEDURE XYZ(Y IN X) AS
BEGIN
FOR I IN Y.FIRST..Y.LAST
LOOP
DBMS_OUTPUT.PUT_LINE('THE VALUE OF I IS'||Y(I));
END LOOP;
END;
END PKG_TEST;
/
DECLARE
BEGIN
PKG_TEST.XYZ('1','2','3','4');
END;
/
【讨论】:
【参考方案2】:您可以在 sql 中使用 varchar 参数,每个值必须用逗号分隔,如下所示: 'value1,value2,value3,value4,...,'
所以,你可以使用sql的函数split来读取值
希望我能理解你的问题
【讨论】:
我没听懂你的回复,我在过程中有参数作为输入,但其中一个输入需要是一个列表。 你为什么不写一些你的代码?你的程序和你的清单的陈述,也许我会明白以上是关于将值列表作为输入参数传递给 PL/SQL 过程的主要内容,如果未能解决你的问题,请参考以下文章
odp.net 可以将参数传递给布尔 pl/sql 参数吗?