declare 
cursor overtime_corsor is select overtimesum,applyno from lhcovertimedetail where overtimedate='20110103' and type=1;
overtimesum lhcovertimedetail.overtimedate%type;
applyno lhcovertimedetail.applyno%type;begin 
open overtime_corsor;
loop
    fetch overtime_corsor into overtimesum,applyno;
    EXIT WHEN overtime_corsor%NOTFOUND;  
    update UserOverTimeInfo set holidaysum=(holidaysum+overtimesum) where applyno=applyno;
    update UserOverTimeInfo set generalsum=(UserOverTimeInfo-overtimesum) where applyno=applyno;
end loop;
close overtime_corsor;
我想把这段直接拷贝在sql window中执行,可以吗?而且这段代码好像也有错误,比如在我update UserOverTimeInfo set holidaysum=(holidaysum+overtimesum) where applyno=applyno;=号右边的overtimesum和applyno是不是也不能这么直接用阿?求指教,平时很少用到语句块

解决方案 »

  1.   


    declare 
    cursor overtime_corsor is select overtimesum,applyno from lhcovertimedetail where overtimedate='20110103' and type=1;
    v_overtimesum lhcovertimedetail.overtimedate%type;
    v_applyno lhcovertimedetail.applyno%type;begin 
    open overtime_corsor;
    loop
        fetch overtime_corsor into v_overtimesum,v_applyno;
        EXIT WHEN overtime_corsor%NOTFOUND;  
        update UserOverTimeInfo set holidaysum=(holidaysum+v_overtimesum) where applyno=v_applyno;
        update UserOverTimeInfo set generalsum=(UserOverTimeInfo-v_overtimesum) where applyno=v_applyno;
    end loop;
    close overtime_corsor;
    ---or
    update UserOverTimeInfo set holidaysum=(holidaysum+v_overtimesum) where applyno=v_applyno;
        update UserOverTimeInfo set generalsum=(UserOverTimeInfo-v_overtimesum) where applyno=v_applyno;改成下面也可以update UserOverTimeInfo set holidaysum=(holidaysum+v_overtimesum),generalsum=(UserOverTimeInfo-v_overtimesum)  where applyno=v_applyno;
      

  2.   


    generalsum=(UserOverTimeInfo-v_overtimesum)  UserOverTimeInfo类型的匹配问题有否
      

  3.   

    sql windows是可以执行匿名块的