Re: [SQL ] 關於procedure中select結果有可能會空ꨠ…

看板Database作者 (linda)時間18年前 (2007/08/28 21:51), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/6 (看更多)
寫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
文章代碼(AID): #16r2X6ts (Database)
討論串 (同標題文章)
文章代碼(AID): #16r2X6ts (Database)