我写了一个JOB如下,本来时可以正常运行的,但加了一句(前面加了×××××××××的那句)就马上报错,不能保存了,请告知原因和解决方法!
update RM_BREAKFAST_TAB
set FLAG='1',STOP_FLAG='0'
where END_DATE<sysdate and STOP_FLAG='1';DECLARE CURSOR CUR_BREAKFAST IS
select to_char(ENT_ROWID) as ENT_ROWID, ENT_NAME
from RM_BREAKFAST_TAB
where to_char(sysdate,'D') not like '7'
and to_char(sysdate,'D') not like '1'
and FLAG='1';
BEGIN
FOR breakfast IN CUR_BREAKFAST LOOP
delete RM_BREAKFAST where ENT_ROWID=breakfast.ENT_ROWID and trunc(CREATE_DATE)=trunc(sysdate);
×××××××××delete RM_BREAKFAST where ENT_ROWID=breakfast.ENT_ROWID and trunc(CREATE_DATE)=trunc(sysdate);
update OA_KEYS_TAB
set KEYMAXID=KEYMAXID+1
where ROW_ID='190';
insert into RM_BREAKFAST(ROW_ID)
select to_char(KEYMAXID+to_number(to_char(sysdate,'YYYYMM'))*10000000000)
from OA_KEYS_TAB
where ROW_ID='190';
if to_number(to_char(sysdate,'D'))=6 then
update RM_BREAKFAST
set ENT_ROWID=breakfast.ENT_ROWID,
ENT_NAME=breakfast.ENT_NAME,
CREATE_DATE=sysdate+3,
ENT_REPL_NAME=breakfast.ENT_NAME
where ROW_ID=(select MAX(ROW_ID) from RM_BREAKFAST);
ELSE
update RM_BREAKFAST
set ENT_ROWID=breakfast.ENT_ROWID,
ENT_NAME=breakfast.ENT_NAME,
CREATE_DATE=sysdate+1,
ENT_REPL_NAME=breakfast.ENT_NAME
where ROW_ID=(select MAX(ROW_ID) from RM_BREAKFAST);
end if;
END LOOP;
END;
update RM_BREAKFAST_TAB
set FLAG='1',STOP_FLAG='0'
where END_DATE<sysdate and STOP_FLAG='1';DECLARE CURSOR CUR_BREAKFAST IS
select to_char(ENT_ROWID) as ENT_ROWID, ENT_NAME
from RM_BREAKFAST_TAB
where to_char(sysdate,'D') not like '7'
and to_char(sysdate,'D') not like '1'
and FLAG='1';
BEGIN
FOR breakfast IN CUR_BREAKFAST LOOP
delete RM_BREAKFAST where ENT_ROWID=breakfast.ENT_ROWID and trunc(CREATE_DATE)=trunc(sysdate);
×××××××××delete RM_BREAKFAST where ENT_ROWID=breakfast.ENT_ROWID and trunc(CREATE_DATE)=trunc(sysdate);
update OA_KEYS_TAB
set KEYMAXID=KEYMAXID+1
where ROW_ID='190';
insert into RM_BREAKFAST(ROW_ID)
select to_char(KEYMAXID+to_number(to_char(sysdate,'YYYYMM'))*10000000000)
from OA_KEYS_TAB
where ROW_ID='190';
if to_number(to_char(sysdate,'D'))=6 then
update RM_BREAKFAST
set ENT_ROWID=breakfast.ENT_ROWID,
ENT_NAME=breakfast.ENT_NAME,
CREATE_DATE=sysdate+3,
ENT_REPL_NAME=breakfast.ENT_NAME
where ROW_ID=(select MAX(ROW_ID) from RM_BREAKFAST);
ELSE
update RM_BREAKFAST
set ENT_ROWID=breakfast.ENT_ROWID,
ENT_NAME=breakfast.ENT_NAME,
CREATE_DATE=sysdate+1,
ENT_REPL_NAME=breakfast.ENT_NAME
where ROW_ID=(select MAX(ROW_ID) from RM_BREAKFAST);
end if;
END LOOP;
END;
ROW_ID NUMBER (16) NOT NULL,
ENT_ROWID NUMBER (16),
ENT_NAME VARCHAR2 (16),
CREATE_DATE DATE,
ENT_REPL_NAME VARCHAR2 (16),
ACTIVE_FLAG INTEGER DEFAULT 1,
UPDATE_DATE DATE,
PRIMARY KEY ( ROW_ID ) ) ; CREATE TABLE RM_BREAKFAST_TAB (
ENT_ROWID NUMBER (16),
ENT_NAME VARCHAR2 (16),
FLAG VARCHAR2 (1),
CREATE_DATE DATE,
START_DATE DATE,
END_DATE DATE,
STOP_FLAG VARCHAR2 (1) DEFAULT 0 ) ; CREATE TABLE OA_KEYS_TAB (
ROW_ID NUMBER (16) NOT NULL,
KEYTABLE VARCHAR2 (32),
KEYCOLUMN VARCHAR2 (32),
KEYMAXID NUMBER (10),
PRIMARY KEY ( ROW_ID ) ) ; 其中OA_KEYS_TAB要插入一条记录,ROW_ID='190',KEYTABLE='RM_BREAKFAST',KEYCOLUMN='ROW_ID',KEYMAXID='0'