今天晚上,和同事聊起Oracle存储过程传递数组参数能否使用数据,之后就在自己的电脑上试试,试了试是可以使用。
代码:
先要定义一个类型myvarray_list 数组的长度是10,数组中存放的数据类型是varchar2。
SQL> create or replace type myvarray_list as varray(10) of varchar2(50);
2 /
类型已创建。
SQL> create or replace procedure show_list(
2 p_varlist in myvarray_list
3 )
4 is
5 str varchar2(50);
6 begin
7 for x in 1..p_varlist.count loop--使用一个循环
8 INSERT INTO t_zzjg(ZZJGDM, ZZJGMC, SSJGDM) VALUES (x,p_varlist(x),x);
9 end loop;
10 end;
11 /
过程已创建。
SQL> exec show_list(myvarray_list('Oracle','DB2','Sql Server','mySql','DBA'));
PL/SQL 过程已成功完成。
在查看t_zzjg这样表里就将5条数据插进去了。