2013-10-15 59 views
0

任何人都可以告訴我,將字段的數據類型從char更改爲varchar2會有什麼影響。將數據類型從char更改爲varchar2的影響

因爲我面臨的問題是,當我火即

select * from table_name where column_name in ('X','Y','Z'); 

選擇查詢上面的查詢將返回僅幾行。最近column_name數據類型從char更改爲varchar。返回的行是數據類型更改後的行。

+0

這取決於你的數據庫系統,數據量,查詢的類型和所使用的索引類型上。 – phoet

回答

0

varchar2數據類型,當存儲在數據庫中時,只使用分配給它的空間 它。如果你有一個varchar2(100)並在表中放置50個字節,它將使用52個字節 (前導長度字節)。

當存儲在數據庫表中時,char數據類型始終使用最大長度,並且爲空白填充 。如果你有char(100)並且放入50個字節,它將消耗102 字節。

因此,在你的情況下,它可能只給予從分配給varchar的空間的行,因此只有少數行被返回,我相信。

Refered來自:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1542606219593

+0

非常感謝您在http://www.oratable.com/char-varchar-difference/上找到相同的原因。您能否告訴我如何選擇所有嘗試使用rpad(value,numberofbytes)的行,但它只返回當列的數據類型爲char時插入的行。 –

相關問題