【问题标题】:how to create a stored procedure in oracle which accepts array of parameters如何在oracle中创建一个接受参数数组的存储过程
【发布时间】:2010-10-24 06:57:47
【问题描述】:

谁能告诉我是否可以在 oracle 中创建一个接受数组作为输入参数的存储过程以及如何创建?

【问题讨论】:

  • 你有什么样的客户?您想从另一个 pl/sql 过程还是从 C#、Java 或 ... 调用此存储过程?

标签: oracle arrays stored-procedures


【解决方案1】:

是的。 Oracle 将它们称为集合,您可以使用多种集合。

使用 VARRAY 的简单数组示例。


DECLARE
  TYPE Str_Array IS VARRAY(4) OF VARCHAR2(50);
  v_array  Str_Array;

  PROCEDURE PROCESS_ARRAY(v_str_array  Str_Array)
  AS
  BEGIN
    FOR i IN v_str_array.first .. v_str_array.last LOOP
      DBMS_OUTPUT.PUT_LINE('Hello '||v_str_array(i));
    END LOOP;
  END;

BEGIN

  v_array := Str_Array('John','Paul','Ringo','George');

  PROCESS_ARRAY(v_array);

  -- can also pass unbound Str_Array
  PROCESS_ARRAY(Str_Array('John','Paul','Ringo','George'));

END;

【讨论】:

  • 非常出色。我添加了第二个示例,显示 Str_Array(...) 作为参数。
【解决方案2】:

如果我没记错的话,有一个名为 TABLE 的原生类型,它基本上是一个数组。但我上次使用它是 2001 年,所以也许现在有最强大的类型。

查看http://www.developer.com/db/article.php/3379271

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多