ORACLE 存储过程 练习七 数组专题

 写在前面的废话

由于工作需要经常用到 ORACLE存储过程 其中数组是不可避免的一组成元素.那么让我们来体会一下 ORACLE存储过程的数组到低是如何使用的....

首先数组是一个数据类型(TYPE). 需要如下语句进行创建和声明.

create or replace type myvarray_list as varray(10) of varchar2(50)


1 数组作为过程的输入参数

 

create or replace procedure show_list_P(

/*用于显示数组*/

   p_varlist in myvarray_list

 )

 is

begin

 for x in 1..p_varlist.count loop

 dbms_output.put_line('p_varlist('||x||')='||p_varlist(x));

 end loop;

 end;
 -- 调用



 call show_list_P(myvarray_list('Oracle','DB2','Sql Server','mySql','DBA'));

 

2 数组作为函数的返回值

create or replace function OUTPUT_list_P return myvarray_list

--  PL/SQL存储过程里调用可变数组作为输出参数:

as

       o_data   myvarray_list:=myvarray_list(); 

begin

  for v_count in 1..5 loop

      o_data.extend; 

      o_data(v_count):= v_count;

   --    dbms_output.put_line('list('||v_count||')='||o_data(v_count));

    end loop;

   return o_data;

end OUTPUT_list_P;
--调用

declare

v_list myvarray_list;

v_count number;

begin

select OUTPUT_list_P()into v_list from dual;

  for v_count in 1 ..v_list.count loop

        dbms_output.put_line('v_list('||v_count||')='||v_list(v_count));

    end loop;

end;

 

你可能感兴趣的:(oracle)