2015-09-28 70 views
1

我有一個number字段,長度爲10個字節。如果我將這個長度存儲到數據類型爲VarChar2的另一個字段中。我如何計算VarChar2的長度?number to varchar2 storage query

某些狀態,我可以只聲明它爲VarChar2(MAX),因爲它並不重要 - 說如果我要將單詞'999'存儲到VarChar(100)和VarChar(1000)中,則會分配相同的空間量。

這是怎麼回事?

+0

長度爲10個字節或10位的數字字段?什麼是確切的數據類型? –

+1

所以如果你有'1000'作爲'number',你需要將它的長度,即'4'存儲在'varchar2'中? – Utsav

+0

這就是我所要求的。如果我有一個數字,例如1000.如果是varchar2,長度是多少?如果它是雙重的,例如1000.1我需要一個長度爲6的varchar2? –

回答

1

無論您是將特定的字符串保存在VarChar2(100)還是VarChar2(1000)中,它在存儲方面都沒有什麼區別 - 長度只是對字節數(或字符數)可以存儲。

但是,Oracle NUMBER數據類型不使用4個字節來保存1000。您可以通過檢查存儲空間:

select vsize(1000) from dual; 

...與...相比較

select vsize('1000') from dual; 

了許多的存儲需求更多的是依賴於存儲的顯著數字量,所以1000百萬需要比1234或1234567

0

的字節數更少。如果你的數據類型是NUMBER(10)那麼它可以存儲最大9999999999和最小-9999999999

如果要將此數據存儲到varchar列,那麼varchar(11)就足夠了。