我有一個number
字段,長度爲10個字節。如果我將這個長度存儲到數據類型爲VarChar2
的另一個字段中。我如何計算VarChar2
的長度?number to varchar2 storage query
某些狀態,我可以只聲明它爲VarChar2(MAX)
,因爲它並不重要 - 說如果我要將單詞'999'
存儲到VarChar(100)和VarChar(1000)中,則會分配相同的空間量。
這是怎麼回事?
我有一個number
字段,長度爲10個字節。如果我將這個長度存儲到數據類型爲VarChar2
的另一個字段中。我如何計算VarChar2
的長度?number to varchar2 storage query
某些狀態,我可以只聲明它爲VarChar2(MAX)
,因爲它並不重要 - 說如果我要將單詞'999'
存儲到VarChar(100)和VarChar(1000)中,則會分配相同的空間量。
這是怎麼回事?
無論您是將特定的字符串保存在VarChar2(100)還是VarChar2(1000)中,它在存儲方面都沒有什麼區別 - 長度只是對字節數(或字符數)可以存儲。
但是,Oracle NUMBER數據類型不使用4個字節來保存1000。您可以通過檢查存儲空間:
select vsize(1000) from dual;
...與...相比較
select vsize('1000') from dual;
了許多的存儲需求更多的是依賴於存儲的顯著數字量,所以1000百萬需要比1234或1234567
的字節數更少。如果你的數據類型是NUMBER(10)
那麼它可以存儲最大9999999999
和最小-9999999999
如果要將此數據存儲到varchar
列,那麼varchar(11)就足夠了。
長度爲10個字節或10位的數字字段?什麼是確切的數據類型? –
所以如果你有'1000'作爲'number',你需要將它的長度,即'4'存儲在'varchar2'中? – Utsav
這就是我所要求的。如果我有一個數字,例如1000.如果是varchar2,長度是多少?如果它是雙重的,例如1000.1我需要一個長度爲6的varchar2? –