ORA-01840 游标循环

zzz2121 2012-02-29 01:36:20
在游标循环的时候 如果日期类型为空 就报ORA-01840错误 怎么解决
...全文
185 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我心飞翔 2012-02-29
  • 打赏
  • 举报
回复
实测数据:

CREATE TABLE T142
(
ID NUMBER(4),
Des VARCHAR2(20)
);
INSERT INTO T142 VALUES(1, 'A');
INSERT INTO T142 VALUES(2, NULL);
INSERT INTO T142 VALUES(3, 'C');
COMMIT;


存储过程:

CREATE OR REPLACE PROCEDURE ProcTestNull
IS
vDes VARCHAR2(20);
CURSOR cur IS SELECT * FROM T142;
BEGIN
FOR r IN cur LOOP
-- 判断Des字段为NULL
IF r.des IS NULL THEN
DBMS_OUTPUT.PUT_LINE(r.id || ', ' || 'Des字段为NULL');
continue;
END IF;
DBMS_OUTPUT.PUT_LINE(r.id || ', ' || r.des);
END LOOP;
END ProcTestNull;


输出结果:
zzz2121 2012-02-29
  • 打赏
  • 举报
回复
游标就是直接 是一个查询 查询出来直接是日期类型的,循环到日期为空的记录时就出错误了。

就这样
yixilan 2012-02-29
  • 打赏
  • 举报
回复
你的游标怎么写的?
zzz2121 2012-02-29
  • 打赏
  • 举报
回复
跪求答案
日期还必须有空格的时候

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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