oracle存储过程

create or replace procedure test1 (aid in varchar) is
icount number; 
begin
DBMS_OUTPUT.PUT_LINE('开始 AID:'|| aid);
for wf in(SELECT * FROM SCORELOG WHERE AID = aid)
loop
update score set SCORE = SCORE - wf.score where STUDENTID = wf.studentid;
delete from SCORELOG where aid = wf.aid and studentid = wf.studentid;
DBMS_OUTPUT.PUT_LINE('更新score***STUDENTID:'|| wf.studentid || '减'||wf.score);
end loop;

for wf2 in(SELECT * FROM LITERSCORELOG WHERE AID = aid)
loop
update LITERSCORE set SCORE = SCORE - wf2.score where KEYID = wf2.literscoreid and STUDENTID = wf2.studentid;
delete from LITERSCORELOG where aid = wf2.aid and LITERID = wf2.literid and studentid = wf2.studentid and LITERSCOREID = wf2.literscoreid;
DBMS_OUTPUT.PUT_LINE('更新LITERSCORE***studentid:' || wf2.studentid || '减' || wf2.score);
end loop;
DELETE from X_TASK WHERE KEYID = aid;
DBMS_OUTPUT.PUT_LINE('执行结束');
select score into icount from score where studentid = '28ee4df4327b46258748fc8de1b94288';
end;

其实不难 多写几次就会了

原文地址:https://www.cnblogs.com/krlin/p/9038938.html