您好,登錄后才能下訂單哦!
空與非空 EMPTY_LOB和NULL的區別
編輯手記:
EMPTY_LOB與NULL在字面意思上看起來差不多,但實際上,它們卻有天壤之別。
前不久寫過一篇文章,描述如果表包含了觸發器,在通過IMP導入數據的時候,原本的EMPTY_LOB將被轉化為NULL。有朋友在文章的回復中問,EMPTY_LOB和NULL的區別,這里就簡單描述一下。
包含觸發器的LOB表執行IMP導致EMPTY_LOB變為空:
http://yangtingkun.itpub.net/post/468/495024
說實話,二者其實差別還是相當大的。
一個表示的未知,另一個表示的空的大對象。需要注意空的大對象并不是空的概念:
使用IS NULL作為條件進行判斷,EMPTY_LOB是查詢不到的。
利用DBMS_LOB.GETLENGTH也可以看出二者的區別:
雖然EMPTY_LOB沒有包含LOB內容,但是LOB頭信息已經存在,因此需要占用不小的空間。
二者最大的區別在于:
EMPTY_LOB雖然沒有LOB的內容,但是已經做好了插入LOB內容的準備,用戶獲取到LOB的頭信息后就可以直接插入數據了。
而對于NULL來說,顯然是不能直接修改的。
恩墨學院隸屬于云和恩墨(北京)信息技術有限公司,致力于提供專業高水準的oracle數據庫與大數據培訓服務,挖掘培養大數據與數據庫人才。恩墨學院提供包括個人實戰技能培訓、個人認證培訓、企業內訓在內的全方位大數據和數據庫技術培訓。ACE級別超強師資,配備專業實驗室,沉浸式學習與訓練,專業實驗室、配備專業助教指導訓練。能迅速融入專家圈子,業內資源豐富,迅速積累職場人脈。oracle數據庫課程包括:Oracle DBA實戰班、Oracle OCM考試、Oracle OCP考試等。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。