简体   繁体   中英

how to create a stored procedure in oracle which accepts array of parameters

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

Yes. Oracle calls them collections and there's a variety of collections you can use.

A simple array example using a 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;

If I'm not wrong, there's a native type called TABLE that basically is an array. But last time I used it was 2001 so maybe there are most powerful types nowadays.

Check this http://www.developer.com/db/article.php/3379271

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM