我有一个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? –