色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

bigint對應 oracle

王梓涵1年前8瀏覽0評論

對于數據庫而言,當有需要存儲超過了數字類型的上限,我們就需要使用一些比較特殊的數據類型,其中BigInteger就是一種比較常見的類型,它能夠存儲更大的整數。在Oracle中,它對應的是NUMBER。下面我們來了解一下Oracle中的NUMBER。

在Oracle中,NUMBER是一種精度高的數據類型,它可以存儲最大的整數和最小的負數,一直到小數點后38位的長度。相對于Java中的BigInteger,它存儲的數據長度更長。

CREATE TABLE CUSTOMER(
CUSTOMER_ID NUMBER(38) PRIMARY KEY,
CUSTOMER_NAME VARCHAR2(100)
);

在上述示例中,NUMBER(38)定義了此列可以存儲的最大整數長度。使用 NUMBER(38) 可以存儲 38 個 9 的數字。

在使用具有精度的 NUMBER 數據類型時,我們應該了解精度控制及其影響。 精度控制決定了可以被存儲和顯示的數字的位數。 它由 PRECISION 制定,是一種 Positive Integer 數據類型,默認值為 38。 PRECISION 的值不能超過 38,如果超過了,那么也會被視為一個非法值。

CREATE TABLE CUSTOMER(
CUSTOMER_ID NUMBER(38, 4) PRIMARY KEY,
CUSTOMER_NAME VARCHAR2(100)
);

在上述示例中,NUMBER(38, 4)定義了此列可以存儲的最大整數長度和小數點后四位小數的精度,超過四位小數的數值將會被四舍五入。

對于精度和縮放,可以在進行算術操作時通過使用DECIMAL_MATH參數來進行管理:

SELECT NVL(SUM(INCOME), 0)
FROM CUSTOMER
WHERE CUSTOMER_ID=1
GROUP BY LAST_NAME
HAVING LAST_NAME='JOHN'
DECFLOAT_ROUNDING_MODE = ROUND_HALF_UP
DECFLOAT_ROUNDING_PRECISION = 5
DECIMAL_MATH = true;

在上述示例中,使用了DECIMAL_MATH參數,以保證在進行數據計算時不會出現精度遺失的情況。

總而言之,NUMBER是Oracle中重要的整數數據類型,它具有高精度,能夠存儲更長的數字,同時也具有較好的精度控制,我們可以在使用時根據實際情況進行定義。