无法使用批量收集打印多于一列

问题描述 投票:0回答:1

我需要使用批量收集打印所有列数据我需要如何实现它

我的员工表:id,姓名,工资

此 id、name、salary 需要打印为输出

下面是我的PLSQL代码

declare 

  type v_nest is table of emp%rowtype;
  v_rd v_nest := v_nest();
  
begin

     select * bulk collect into v_rd from emp;
  
     for i in v_rd.first..v_rd.last
     loop
        dbms_output.put_line(v_rd(i));  // Why this does not work 
     end loop; 
     
end;
oracle plsql plsql-package bulk-collect
1个回答
0
投票

dbms_output
需要一个标量 - 您不能向它传递具有多列的记录。因此,只需按照您希望的方式将其分解,但将列名称添加到您的集合引用中:

declare 

  type v_nest is table of emp%rowtype;
  v_rd v_nest := v_nest();
  
begin

     select * bulk collect into v_rd from emp;
  
     for i in v_rd.first..v_rd.last
     loop
        dbms_output.put_line(v_rd(i).id||','||v_id(i).name||','||v_rd(i).salary);  
     end loop; 
     
end;
© www.soinside.com 2019 - 2024. All rights reserved.