将值列表作为输入参数传递给PL / SQL过程

时间:2014-02-06 14:11:20

标签: stored-procedures plsql

您好我需要在PL / SQL过程中获取输入参数的值列表。输入列表的大小是不同的,这是动态的。如何处理这个要求任何帮助?

2 个答案:

答案 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

的功能拆分来读取值

我希望我理解你的问题