oracle存储数组
‘壹’ oracle中的存储过程可以用数组吗
首先你需要定义一个数组类型,然后定义这个数组变量declaretypea_typeistableofnumber;--typea_typeisarray(10)ofnumber;--下面一种定义方式则指定了该数组的最大元素个数aa_type:=a_type();--定义并初始化一个数组变量begina.extend(3);--数组扩展到3个元素a(1):=1;a(2):=10;a(3):=100;end;另外数组还有一下方法和属性first--第一个元素下标last--最后一个元素下标count--数组元素个数prior(n)--下标n的前一个元素下标next(n)--下标n后一个元素下标extend(n)--添加n个数组元素,不带参数添加一个数组元素delete(n)--删除数组中下标为n的元素,不带参数删除整个数组元素
‘贰’ oracle中存储过程怎么定义一个数组
在PL/sql中是没有数组(Array)概念的。但是如果程序员想用Array的话,就得变通一下,用TYPE 和Table of Record来代替多维数组
‘叁’ oracle 存储过程 数组循环
declare
type typ_rec is record of (student.name%type, student.age%type); --集合变量
type typ_tab is table of typ_rec index by binary_integer; --以集合变量为单位的table数组
rec_sql typ_rec;
another_rec student%rowtype; --跟rec_sql一样
begin
--for循环里的rec_tmp不用定义,可以自动生成的
for rec_tmp in (select t.name, t.age from student t) loop
dbms_output.putline(rec_tmp.name || ' ''s age + 1 = ' || to_char(rec_tmp.age + 1) );
end loop;
exception
when others then
return;
end;
‘肆’ Oracle 存储过程 数组做参数 求实例
packtest.test(v_string,v_int);
你的v_string输入参数没有初始化。
v_string system.packtest.string_array := system.packtest.string_array('a','b','c');