您好我需要在PL / SQL过程中获取输入参数的值列表。输入列表的大小是不同的,这是动态的。如何处理这个要求任何帮助?
答案 0 :(得分:6)
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;
/
答案 1 :(得分:1)
你可以在sql中使用varchar参数,每个值必须用逗号分隔,如下所示: '值1,值2,值3,值4,...,'
因此,您可以使用sql
的功能拆分来读取值我希望我理解你的问题