如何解决ORA-01480: STR 赋值变量缺少空后缀错误?

vison2001 2003-08-07 03:20:29
我写了一个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;
...全文
1164 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-08-07
  • 打赏
  • 举报
回复
delete RM_BREAKFAST where ENT_ROWID=breakfast.ENT_ROWID and trunc(CREATE_DATE)=trunc(sysdate);
两个句话,即重复删除干什么,当然,删除不符合的记录,也不会报错.
或者语句后加一句commit;
fita 2003-08-07
  • 打赏
  • 举报
回复
是不是文本太大了,试试改成其他语句报不报错,如果还报错就是文本太大了
可以把语句写到存储过程中,这里只写调用语句

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧