Oracle中的NULL(1、問題引入)

說明最近在寫後臺程序的時候,遇到了關於Oracle中NULL的一個問題: sql

測試數據 編程

表結構 測試

表中已有的數據 spa

插入數據: code

INSERT INTO Z_TEST VALUES ('', '堅毅童');
這是表中的數據爲:


當我想把'FSTUDENTNAME' 爲 '堅毅童'的記錄查出來: 字符串

SELECT T.*, T.ROWID FROM Z_TEST T WHERE T.FSTUDENTID = '';


但結果爲 class

查詢無記錄。 後臺

這時我就在想,我明明把這條數據的FSTUDENTID字段置爲'',可是卻查不出來。後來我想 ,Oracle是否是把這個空字符串編程了NULL。 程序

爲了驗證我想法的正確性,我測試了一下: im

SELECT DECODE(T.FSTUDENTID, NULL, 'NULL值', '空字符串')
  FROM Z_TEST T
 WHERE T.FSTUDENTNAME = '堅毅童';
發現,個人猜測是正確的,原來Oracle把空字符串解析成了NULL。


我在程序中調用存儲過程,插入數據字段爲''空字符串,結果該字段就變成了NULL;

後來我爲了找問題的解釋,就在網上搜了不少的資料,下面就把這些資料整理一下。

相關文章
相關標籤/搜索