判断%ROWTYPE的值是否为空的方法

Run_LeoCat 2009-06-23 02:43:14
如题:
DECLARE
emp_rec emp%ROWTYPE;
CURSOR c1 IS
SELECT deptno, dname, loc FROM dept;
dept_rec c1%ROWTYPE;

假如c1执行了,如何判断c1的返回结果dept_rec中是否有记录?
dept_rec c1%ROWTYPE。
谢谢。
...全文
1445 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fosjos 2009-06-23
  • 打赏
  • 举报
回复
a.主键 is null
Run_LeoCat 2009-06-23
  • 打赏
  • 举报
回复
谢谢回复。
不过,我的问题是, 就针对一个类型为 “a 表名%rowtype ”的变量a, 是否有办法,或者属性判断 a 中是否有记录;(已经为a通过fetch进行了初始化)。
像游标的notfound那样的属性。
harvey11 2009-06-23
  • 打赏
  • 举报
回复
有这个属性,比如你的游标是 C1

就用 C1%NOTFOUND 判断。

游标一般这么写:



OPEN Cur;
LOOP
FETCH Cur INTO Rec;
EXIT WHEN Cur%NOTFOUND;

-------------------↓
--你的处理。
-------------------↑

END LOOP;

Run_LeoCat 2009-06-23
  • 打赏
  • 举报
回复
也就是说,ROWTYPE本身没有提供类似notfound的这种属性来判断记录是否为null,对吧?
必须自己想办法实现,或者不用rowtype,用自己定义的record,是否?
谢谢
welyngj 2009-06-23
  • 打赏
  • 举报
回复


open c1;
fetch c1 into dept_rec ;
while c1%found
loop
....
end loop;
close c1;
Run_LeoCat 2009-06-23
  • 打赏
  • 举报
回复
这样操作:
open c1;
fetch c1 into dept_rec ;
close c1;
然后,我要判断dept_rec中是否有记录,能有办法么?
谢谢。
welyngj 2009-06-23
  • 打赏
  • 举报
回复
应该用c1%NOTFOUND
Run_LeoCat 2009-06-23
  • 打赏
  • 举报
回复
在我这里,用这个方法,报错了:PLS-00324,兄台再想个办法吧。
welyngj 2009-06-23
  • 打赏
  • 举报
回复
dept_rec%NOTFOUND

17,141

社区成员

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

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