2015-09-28 73 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)就足够了。