2011-03-09 42 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

相關問題