看板 Database 關於我們 聯絡資訊
常常遇到一個情形, 當想執行一小段的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: 59.117.59.70 ※ 編輯: diamondking 來自: 59.117.59.70 (08/28 20:29)