在編寫Oracle后端程式時,經常會用到nvl函數,用來轉換那些為null的變量或欄位.
一般的使用方法為:
v_name := nvl(v_name,'N/A');
同時,我們經常也會使用如下的語法結構來查詢資料.
Begin
select name into v_name from tab_name where ...
Exception
when No_data_found then
v_name := 'N/A';
End;
實際上,我們可以將上面的語法結構用nvl函數來實現.
如:
select nvl((select name from tab_name where ...),'N/A') Into v_name From dual;
這里如果nvl中第一個參數查詢結果為No_data_found,則就等同於null值,所以就會返回第二個參數.
這種寫法只能使用在select查詢中,不可以直接使用賦值,如:
v_name := nvl((select name from tab_name where ...),'N/A');
這樣就是不可以編譯通過的.
以上,記錄於此.以供查閱.
本文介绍了Oracle数据库中NVL函数的基本用法及其在查询语句中的应用技巧,特别是如何结合SELECT语句来处理NULL值,同时对比了传统异常处理方式。
2855

被折叠的 条评论
为什么被折叠?



