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;