Oracle Database 的 Varchar 與 Varchar2

GorgoasTW
2 min readAug 14, 2019

--

從其他資料庫轉到 Oracle DB 常常會碰到的一個雷是 Varchar2 裡空字符等於 null 這件事,因為在資料庫規範定義 null != ‘’ 之前Oracle就已經設計完資料庫系統了。

在 Oracle 的設計裡,空字符是等於 null 的。如果你新增一筆’’字串進資料庫,查詢時會顯示欄位資料為 null。

上圖是 Oracle 官方對於資料庫類型 Varchar 與 Varchar2 的說明,以目前而言 Varchar 和 Varchar2 是同義字,使用上並無不同。

官方建議使用 Varchar2,保留 Varchar 是因為預留以後更動的空間(也不知道甚麼時候才會實現)。

實際測試如下圖

可以看到不管是 Varchar 或是 Varchar2 結果都一樣。

所以在設計資料庫是使用 Oracle DB 的時候要注意到這個部分,並且在程式邏輯中處理判斷避免程式發生閃退的情況。

--

--

GorgoasTW
GorgoasTW

Written by GorgoasTW

iOS Developer/.NET Developer/Father

No responses yet