pl/sql for loop迴圈的使用

paulyibinyi發表於2008-08-25

spool p2p_430.log


prompt "create temp table"
create table temp0825
(v_account_id number, v_transfer_type number);

declare
v_id number;
v_account_id number ;
v_transfer_type number;
begin
 for x in (select distinct account_id account_id from tb_cashtransfer_log where account_type=1 ) loop
     select max(id) id into v_id from tb_cashtransfer_log where account_id =x.account_id;
     select account_id ,transfer_type into v_account_id,v_transfer_type from tb_cashtransfer_log where id=v_id ;
      if v_transfer_type=1 then
         insert into temp0825  values ( v_account_id,v_transfer_type);
         commit;
      end if;
      
 end loop;
end;
/


prompt "transfer_type=1"


select * from temp0825;


prompt "tb_test_status.location_type<>3'
select tb_test_status.test_id,
       tb_test_status.location_type,
       tb_test.login
  from temp0825, tb_test_status, tb_test
 where tb_test_status.test_id = ea_casino_temp0825.v_account_id
   and tb_test.id = tb_test_status.test_id
   and tb_test_status.location_type <> 3;

prompt "update location_type=3"


update tb_test_status set online_='T',location_type=3 where test_id in
(select tb_test_status.test_id from temp0825,tb_test_status
where tb_test_status.test_id=ea_casino_temp0825.v_account_id and tb_test_status.location_type<>3);
   
commit;


select tb_test_status.test_id,
       tb_test_status.location_type,
       tb_test.login
  from ea_casino_temp0825, tb_test_status, tb_test
 where tb_test_status.test_id = ea_casino_temp0825.v_account_id
   and tb_test.id = tb_test_status.test_id
   and tb_test_status.location_type <> 3;


prompt "drop temp table"
drop table temp0825 ;
spool off;
exit;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-434576/,如需轉載,請註明出處,否則將追究法律責任。

相關文章