作者paiyea (linda)
看板Database
标题Re: [SQL ] 关於procedure中select结果有可能会空ꨠ…
时间Tue Aug 28 21:50:52 2007
写Exception 的处理,
与例 以 oracle 为列
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_c = 0;
※ 引述《diamondking (天剑流星)》之铭言:
: 常常遇到一个情形,
: 当想执行一小段的sql,但select出来的结果为空值,就会出错…
: 例如(以oracle为例):
: declare
: v_c int :=0;
: begin
: select num into v_c from table where.....;
: ....
: ....
: end;
: 如果那行select找不到任何资料,则这一小段sql就会出错…。
: 通常这样的情形,大家都如何解决呢?
: 目前想到的做法有几种,不过感觉应该有更好的方法:
: 1、先select count(*) into v_a ......; if v_a >0 then .....
: 但这样很蠢,同样的sql要再copy一次,只为了先判断是不是select得出资料。
: 2、把那段sql,再加上「union select 0 from dual」,让他一定找得到资料。
: (至少一定有「0」这笔资料)
: 3、写例外处理的sql,但是这不是个好方法,因为一产生例外,就必须跳出了,
: 有时候是希望他继续做别的事。
: 希望大家讨论讨论
: 另外各家资料库,可能有不同的解法?( sql server, mysql...等等)
--
在人前总是乐观开朗 看似精明能干
但有太多问题........ 是早己想了又想....哭了又哭
有时却是只能笑脸迎人..... 内心早已在哭泣.....
想要早人谈谈... 却想不起一个名字......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.217.69.171