DECLARE
----定义游标
cursor cur is select FWID as IDS,MYLQJF AS
MYLQJFS,BZ1 AS BZ1S,REGEXP_SUBSTR(MYLQJF,'[0-9]+') NEW_MYLQJFS
,REGEXP_SUBSTR(MYLQJF,'[^x00-xff]+') NEW_BZ1S
from HR_RCXM_YGPLX_SERVICE ;
IDS VARCHAR(32); ----ID
主键
MYLQJFS VARCHAR(32); ----每月领取经费
BZ1S VARCHAR(32);
----币种
NEW_MYLQJFS VARCHAR(32);
---新每月领取经费(通过现有每月领取经费截取数字)
NEW_BZ1S VARCHAR(32);
---新要更新的币种(通过现有每月领取经费截取汉子)
MaxCount number;
begin
select count(*) into MaxCount
from HR_RCXM_YGPLX_SERVICE; ---查询数据总数用于迭代
open cur;
DBMS_OUTPUT.ENABLE(1000000);
----设置打印,不如会报错
for i
in 1..MaxCount loop ----迭代开始
FETCH cur INTO
IDS,MYLQJFS,BZ1S,NEW_MYLQJFS,NEW_BZ1S;
--抓取迭代数据
IF (BZ1S
IS NULL and NEW_MYLQJFS is not null) THEN ---如果币种为空并且
每月领取经费不为空
UPDATE HR_RCXM_YGPLX_SERVICE A SET A.MYLQJF =
NEW_MYLQJFS ,A.BZ1 = NEW_BZ1S
WHERE A.FWID = IDS ;
COMMIT;
elsif (BZ1S IS NOT NULL AND NEW_MYLQJFS is not
null ) THEN
UPDATE HR_RCXM_YGPLX_SERVICE A SET A.MYLQJF =
NEW_MYLQJFS WHERE A.FWID =
IDS ;
COMMIT;
END
IF;
end
loop;
CLOSE cur;
END;
加载中,请稍候......