oracle有關varchar2的定義方式區別

2021-08-31 02:14:48 字數 586 閱讀 7072

前述:最近從生產往測試同步資料出現問題,具體報字段值過大的異常,檢查了以下總結問題如下

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時,按實際長度...