亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問在oracle中varchar和varchar2有什么區別?

請問在oracle中varchar和varchar2有什么區別?

哈士奇WWW 2019-09-14 12:11:50
在oracle中varchar和varchar2有什么區別?
查看完整描述

4 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

1.varchar2把所有字符都占兩字節處理(一般情況下),varchar只對漢字和全角等字符占兩字節,數字,英文字符等都是一個字節;
2.VARCHAR2把空串等同于null處理,而varchar仍按照空串處理;
3.VARCHAR2字符要用幾個字節存儲,要看數據庫使用的字符集,
大部分情況下建議使用varchar2類型,可以保證更好的兼容性。

查看完整回答
反對 回復 2019-09-19
?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

CHAR char數據類型存儲固定長度的字符值。一個CHAR數據類型可以包括1到2000個字符。如果對CHAR沒有明確地說明長度,它的默認長度則設置為1。如果對某個CHAR類型變量賦值,其長度小于規定的長度,那么Oracle自動用空格填充。 VARCHAR2 存儲可變長度的字符串。雖然也必須指定一個VARCHAR2數據變量的長度,但是這個長度是指對該變量賦值的最大長度而非實際賦值長度。不需用空格填充。最多可設置為4000個字符。因為VARCHAR2數據類型只存儲為該列所賦的字符(不加空格),所以VARCHAR2需要的存儲空間比CHAR數據類型要小。


查看完整回答
反對 回復 2019-09-19
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

聯系:
1.varchar/varchar2用于存儲可變長度的字符串
比如varchar(20),存入字符串'abc',則數據庫中該字段只占3個字節,而不是20個字節
2.size 的最大值是 4000,而最小值是 1,其值表示字節數,比如
varchar(20)表示最大可以存放20個字節的內容

區別:
1.varchar2把所有字符都占兩字節處理(一般情況下),varchar只對漢字和全角等字符占兩字節,數字,英文字符等都是一個字節;
2.VARCHAR2把空串等同于null處理,而varchar仍按照空串處理;
3.VARCHAR2字符要用幾個字節存儲,要看數據庫使用的字符集,
比如GBK,漢字就會占兩個字節,英文1個
如果是UTF-8,漢字一般占3個字節,英文還是1個。
但是一般情況下,我們都認為是兩個字節處理,因為oracle安裝時候默認我們都選擇GBK的編碼格式,但是我們在頁面做輸入字符串長度的校驗的時候,還是以數據庫設計字段最大長度除3來作為最大長度-----防止數據庫移植時設置不同編碼格式;
比如:VARCHAR2(10),一般情況下最多存放5個漢字,10個字符


查看完整回答
反對 回復 2019-09-19
  • 4 回答
  • 0 關注
  • 622 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號