日期:2014-05-17  浏览次数:20680 次

关于自定义函数中的异常:select语句未找到数据的处理
各位朋友:
  有个select语句像这样: 
  select book.name from book where XXX;
where条件能保证这个select结果一定是一个值,而不是一组值。当select结果是空的,提示没找到数据(可能book表是空表),这种情况下我想对name按默认值来操作;否则,当select结果不空时,就按结果值来操作。我该怎么写呢??求指教。

------解决方案--------------------
nvl2()方法不可以吗?
select nvl2(name,name,'没有记录') from zzgtest?
是我想得太简单了 哈?
------解决方案--------------------
select orders.bsum into book_sum from classes, orders
where orders.term=selected_term and
orders.clno=current_clno and
orders.bno=book_bno;
 改成
begin
select orders.bsum into book_sum from classes, orders
where orders.term=selected_term and
orders.clno=current_clno and
orders.bno=book_bno;
 
EXCEPTION WHEN NO_DATA_FOUND THEN
--没有值时你想干的事情
end;