场景:在做一次字段扩长的时候,需要和生产数据作对比.于是用以下SQL查询了一下该字段的长度.
SELECT
COLUMN_NAME,DATA_LENGTH,DATA_PRECISION,DATA_SCALE
FROM
USER_TAB_COLUMNS
WHERE
TABLE_NAME='TEST_NUMBER'; --这里是测试表.
表字段分别为
A -> NUMBER(38)
B -> NUMBER
C -> NUMBER(18,2).
查询结果为:
COLUMN_NAME DATA_LENGTH DATA_PRECISION DATA_SCALE
A 22 38 0
B 22
C 22 18 2
到这里,身为菜鸟的我产生了一丝疑惑.为啥所有的NUMBER类型长度都为22.不应该是NUMBER(18,2)长度就是18么?
后来带着疑惑,去查了下ORACLE官方,找到了答案.以下这两个是ORACLE官方技术团队给出答案