SQL%FOUND没效果??

lchen1983 2007-09-13 07:16:26
BEGIN
QuerySql:='SELECT P.A FROM TB_A P WHERE P.B='''||A||''' AND P.B='''||B||'''';
EXECUTE IMMEDIATE QuerySql;
IF SQL%FOUND THEN
DBMS_OUTPUT.put_line('DDDDDDD');
RAISE EXIST_EXCEPTION;
RETURN;
ELSE
DBMS_OUTPUT.put_line('CCC');
END IF;
END;

我在表中能查到上面过程中的SELECT数据,可是怎么执行到ELSE下面去了???数据库高手帮我解决下呀?不是说用NO_DATA_FOUND那样的话就达不到我要的效果了,谢谢了!!!
...全文
106 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
萬里無雲 2007-09-17
  • 打赏
  • 举报
回复
据我所只select 语句用SQL%FOUND 是不能判断出检索出多少条结果的
它能知道insert或者update了多少条记录,或者select into
如果你想要知道检索出多少条记录有2个办法,
一个是count(*)
一个就是
用游标打开这个语句,然后
open cursexx
loop
fetch cursexx into curseryy
exit when cursexx %notfound;

RAISE EXIST_EXCEPTION;
RETURN;
end loop;

lchen1983 2007-09-13
  • 打赏
  • 举报
回复
好的,谢楼上的,明天去试试,
mantisXF 2007-09-13
  • 打赏
  • 举报
回复
QuerySql:='SELECT P.A FROM TB_A P WHERE P.B='''||A||''' AND P.B='''||B||'''';

换成

QuerySql:='SELECT P.A FROM TB_A P WHERE P.B=''||A||'' AND P.B=''||B||''';

试试看~~

17,082

社区成员

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

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