如何在oracle中创建一个接受参数数组的存储过程

时间:2009-05-06 19:05:26

标签: oracle arrays stored-procedures

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

2 个答案:

答案 0 :(得分:14)

是。 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;

答案 1 :(得分:1)

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

选中此http://www.developer.com/db/article.php/3379271