下面这段程序是 一个循环,循环体是  判断一个记录是不是存在,如果存在,就进行两个update的操作,不知道错在什么地方,不知道哪个大侠能帮帮忙,看看啊begin
loop
if exists(select * from mfg_tbl_rework_bk where HISTDATE='2008-08-21'and eqptype is null) then
begin
    UPDATE MFG_TBL_REWORK_BK D SET (EQPTYPE,EQPID)=(SELECT  EQPTYPE,EQPID
          FROM HIST@ODSPRD A,
               (SELECT C.PARENTID LOT,B.LOTID, MAX(B.PREVHISTTIME) PREVHISTTIME
                  FROM HIST_LOTEVENTS@ODSPRD A, HIST@ODSPRD B,MFG_TBL_REWORK C,ACTL@ODSPRD D
                 WHERE A.LOTID=D.PARENTID     
                   AND EVTYPE = 'NTKO'
                   AND A.LOTID = B.LOTID
                   AND A.PREVHISTTIME = B.PREVHISTTIME
                   AND B.EQPTYPE IN ('LII', 'LDI')
   AND C.PARENTID=D.LOTID
   AND C.EQPTYPE IS NULL
   AND C.HISTDATE=TO_CHAR(SYSDATE-1,'YYYY-MM-DD') 
                 GROUP BY B.LOTID,C.PARENTID) B
         WHERE A.LOTID = B.LOTID
           AND A.PREVHISTTIME = B.PREVHISTTIME
   and d.PARENTID=b.lot) 
   where D.EQPTYPE IS NULL
   AND HISTDATE='2008-08-21';
UPDATE MFG_TBL_REWORK_BK D SET (PARENTID)=(select PARENTID from actl@odsprd a
where d.PARENTID=a.lotid)
where D.EQPTYPE IS NULL
AND HISTDATE='2008-08-21';
end else exit;
end if;
end loop;
end