AI智能
改变未来

Oracle中的数据类型——NUMBER


NUMBER类型概述

NUMBER类型可以用来存储0、正数、负数
数据范围是1×10-130 ~ 1 × 10126 ,不能等于或者大于1 × 10126 ,否则Oracle会报错(算数表达式的结果同理)

NUMBER类型的定义

NUMBER[(precision[, scale])]
precision —— 数据的有效位数(取值1~38)
scale —— 截取的小数点位(取值-84~127)
当精度超出定义的时候,两者都会做四舍五入操作
一个NUMBER类型的数据会占1~22个字节的数据

实际数据使用NUMBER类型在数据库中的存储

实际数据 存储类型 实际存储的值
123.89 NUMBER 123.89
123.89 NUMBER(3) 124
123.89 NUMBER(5, 4) exceed precision1
123.89 NUMBER(6, -2) 100
3.8567 NUMBER(5, 4) 3.8567
3.85679 NUMBER(5, 4) 3.8568
3.8567 NUMBER(6, -2) 0

通过上面存储的值我们可以得出结论,当我们同时定义了数据有效位数和截取的小数点位的时候,数据库会按照要求处理数据最后判断数据是不是符合规则,符合规则直接存储,不符合规则的话则会报错

  1. NUMBER(5, 4)意为5位有效数字,小数点截取4位,123.89这个数字按照这个类型保存的数字是123.8900,有限数字已经有7位了,显然超出了定义的限制,故报错 ↩︎

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Oracle中的数据类型——NUMBER