前述:最近從生產往測試同步資料出現問題,具體報字段值過大的異常,檢查了以下總結問題如下
eg:varchar2(30)與varchar2(30 char)的區別
按位元組儲存 按字元儲存 這裡的30表示字元個數
這裡的30表示位元組個數
比如有的編碼方式乙個字元需要二個位元組長度, 而另一些編碼方式乙個字元需要三個位元組長度
a庫varchar2(30) b庫varchar2(30)
能放15個字元 能放10個字元
若現在需求a庫導資料到b庫
則儲存在a庫中的超過(>)10個字元的內容匯入b庫時就報字段值過大的異常
若此時將b庫的該字段型別改為varchar2(30 char) 其實就等於varchar2(90)
這樣肯定就能正常匯入了,其實此時將b庫改為varchar2(45)就剛好ok了
綜上:在新建表時最好都以varchar2結合char形式來定義,可以遮蔽不同資料庫的編碼。
Oracle中的varchar型別
varchar的優點 節省空間,寫入速度快。varchar寫入資料庫時,資料庫不會在字串尾部自動補充空格。這樣可以節省資料占用的磁碟空間,也可以節省一定的自動補充空格運算。varchar的缺點 varchar中,字串尾部空格是有意義的,資料庫在檢索資料時,不會自動去除尾部空格後匹配。所以寫入資料時如...
Oracle之char和varchar區別及踩坑
char和varchar區別及踩坑 char與varchar2都是oracle的資料儲存格式。char是定長的,varchar2是變長。都可以儲存字串。同樣儲存乙個字元 a char 占用了10個字元 a佔乙個,另外9個使用空格占用 varchar2只占用了 乙個字元 注意 乙個中文佔兩個字元 三個...
Oracle中char和varchar2的區別
1.char的長度是固定的,而varchar2的長度是可以變化的,比如,儲存字串 abc 對於char 20 表示你儲存的字元將佔20個位元組 包括17個空字元 在資料庫中它是以空格佔位的,而同樣的varchar2 20 則只占用3個位元組的長度,20只是最大值,當你儲存的字元小於20時,按實際長度...