create or replace procedure test_procedure_job

as
v1 varchar2(50);
v2 varchar2(50);
v3 varchar2(50);
begin
   for v1 in
   (select t.id
          from test_table t) 
   loop
       select t.username,t.password into v2,v3 from sshtest t where t.id = v1.id;
       
       dbms_output.put_line(v1.id || ',' || v2 || ',' || v3);
     
   end loop;
   
end test_procedure_job;

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

原来,for in 取出来的v1,是一个虚表。里面有一个属性id。

所以在循环里面,不是用v1,而是用v1.id。试了很久,郁闷。

然后,循环里面,用了select into。直接用v2,v3。真神奇。

这里竟然和v1不同。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄