家伙.这是PL / sql中的一个简单的示例二维数组,它的工作正常.
declare type a is table of number; type b is table of a; arr b := b(a(1,2),a(3,4)); begin for i in arr.first .. arr.last loop for j in arr(i).first .. arr(i).last loop dbms_output.put_line(arr(i) (j)); end loop; end loop; end;
我需要做的是创建一个类似于RECORDS表的东西.喜欢这个:
type a is record(a1 number,a2 number); type b is table of a;
问题是,我可以手动初始化这种类型的数组,还是应该通过批量收集或类似的方式填充?与上述相同的语法似乎不起作用,我无法在手册中找到任何初始化示例.
解决方法
RECORDs没有“构造函数”语法,所以你必须像这样填充它们:
declare type a is record(a1 number,a2 number); type b is table of a; arr b := b(); begin arr.extend(2); arr(1).a1 := 1; arr(1).a2 := 2; arr(2).a1 := 3; arr(2).a2 := 4; end;