在書寫 Oracle 存儲過程當中,進行空值 null 和空字符串「」的判斷經常會產生困惑。數據庫
當傳入的參數爲「」空字符串時,筆者按照下面的代碼進行判斷,則 Oracle 報錯post
if i_create_emp == '' then
若是改爲下面代碼,則會正常運行code
if i_create_emp is null then
原來,若是是「」空字符串,Oracle 會將之默認轉爲空值 null ,所以,在進行空字符串「」判斷時,應用is null 來進行。字符串
可是,若是在進行數據庫修改操做時,當傳入的 i_post_code 爲空字符串「」時,如下代碼存入到數據庫中的值爲「」數據
set post_code = i_post_code
若是須要存入 null 值,則應寫爲存儲過程
set post_code = null