oracle pl/sql for loop循环的使用
oracle pl/sql for loop循环的使用
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;