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;

 

posted @ 2013-02-01 21:40  王超_cc  阅读(735)  评论(0编辑  收藏  举报