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

use*_*468 5 plsql stored-procedures

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

use*_*468 7

CREATE OR REPLACE PACKAGE PKG_TEST AS
TYPE X IS TABLE OF VARCHAR2(30);
PROCEDURE XYZ(Y IN X);
END PKG_TEST;
/
Run Code Online (Sandbox Code Playgroud)

该类型可以声明为"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;
/
Run Code Online (Sandbox Code Playgroud)