数组 – 如何在PL / SQL中手动初始化RECORDs集合?

家伙.这是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;

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...