2011-03-09 94 views
2

我需要创建一个数据类型,它支持至少x位数的数字,并且能够存储多于x位的数字。如何创建一个至少有11位数的Oracle数字?

在TCPE中,数据类型被称为NUM(m [,n])。 M表示至少有m位总数的无符号数值,其中n位数在小数点后面。

所以NUM(11)如何在oracle中为此创建一个数据类型?

我在想NUMBER(11,0),但看起来这是最大的位数。 也许浮点运算能够解决这个问题吗?

或者我应该使用检查约束?但使用检查约束似乎有点奇怪,因为我认为这本来就是支持的。

+1

“至少x位”有什么意义?存储值或向用户表示值时存在问题吗? – Rene 2011-03-09 07:16:24

回答

4

不可能声明包含“至少x位数并且能够存储多于x位数”的数字类型。

您只需将其声明为NUMBER(38,0)(可能的最大整数)并创建约束来检查该数字是否小于X位数的长度。

UPD

而且正如你所提到自己NUMBER(*, 0)也是做同样的工作的一种有效方式。

+0

不应该使用NUMBER(*,0)它是一样的吗? – 2011-03-09 07:24:58

+0

@Sam S:是'*'精确度的有效值?! – zerkms 2011-03-09 08:08:39

+2

@zerkms:是的。 [你可以指定一个比例和不准确度](http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/datatype.htm#i16209) – 2011-03-09 09:36:52

相关问题