这段时间实在是很忙,结婚、赶项目进度、被迫出书、教学。每件事都是不能得罪的。。。。
前几天帮教务处修正oracle数据库数据问题,把代码贴出来防止以后找不到了
 declare
declare  CURSOR curTTT is select XN,XM,XQ,KCMC,XF,BJMC from CJB;
CURSOR curTTT is select XN,XM,XQ,KCMC,XF,BJMC from CJB; XN1 VARCHAR2(10);
XN1 VARCHAR2(10); XM1 VARCHAR2(20);
XM1 VARCHAR2(20); XQ1 NUMBER(1);
  XQ1 NUMBER(1); KCMC1 VARCHAR2(40);
  KCMC1 VARCHAR2(40); XF1 VARCHAR2(10);
  XF1 VARCHAR2(10); BJMC1 VARCHAR2(40);
  BJMC1 VARCHAR2(40); begin
begin -----------------------------------------
-----------------------------------------
 if curTTT%isopen = false then
 if curTTT%isopen = false then  open curTTT;
  open curTTT; end if;
  end if; fetch curTTT into XN1,XM1,XQ1,KCMC1,XF1,BJMC1;
  fetch curTTT into XN1,XM1,XQ1,KCMC1,XF1,BJMC1; --  Dbms_Output.put('1');
 --  Dbms_Output.put('1'); while curTTT%found
while curTTT%found  loop
loop if XF1='0' then
 if XF1='0' then        update CJB
update CJB  set XF=(select * from (select nvl(XF,0) from CJB
set XF=(select * from (select nvl(XF,0) from CJB  where BJMC=BJMC1 and KCMC=KCMC1 and XQ=XQ1
where BJMC=BJMC1 and KCMC=KCMC1 and XQ=XQ1 and XN=XN1 and XF>'0' )
     and XN=XN1 and XF>'0' ) where ROWNUM<=1)
       where ROWNUM<=1) where BJMC=BJMC1 and KCMC=KCMC1 and XQ=XQ1
where BJMC=BJMC1 and KCMC=KCMC1 and XQ=XQ1 and XN=XN1 and XM=XM1;
     and XN=XN1 and XM=XM1;  end if;
end if;
 if curTTT%rowcount=0 then
if curTTT%rowcount=0 then exit;
exit; end if;
end if;
 fetch curTTT into XN1,XM1,XQ1,KCMC1,XF1,BJMC1;
fetch curTTT into XN1,XM1,XQ1,KCMC1,XF1,BJMC1; end loop;
end loop;
 commit;
  commit; close curTTT;
  close curTTT; --------------------------------------------
--------------------------------------------  end;
end;