将值列表作为输入参数传递给 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 过程的主要内容,如果未能解决你的问题,请参考以下文章

将 BLOB/CLOB 作为参数传递给 PL/SQL 函数

PL/SQL:将字符串的“数组”作为参数传递给 sql

odp.net 可以将参数传递给布尔 pl/sql 参数吗?

将xml作为输入参数传递给存储过程

如何将值参数传递给 Bootstrap 中的 modal.show() 函数

从 Java 创建并将 SYS_REFCURSOR 作为输入参数传递给 Oracle 过程