zoukankan      html  css  js  c++  java
  • 【转】oracle数据库NUMBER数据类型

    NUMBER ( precision, scale)
    a)  precision表示数字中的有效位;如果没有指定precision的话,Oracle将使用38作为精度。
    b)  如果scale大于零,表示数字精确到小数点右边的位数;scale默认设置为0;如果scale小于零,Oracle将把该数字取舍到小数点左边的指定位数。
    c)  Precision的取值范围为【1---38】;Scale的取值范围为【-84---127】。
    d)  NUMBER整数部分允许的长度为(precision- scale),无论scale是正数还是负数。
    e)  如果precision小于scale,表示存储的是没有整数的小数。
    f)  Precision表示有效位数,有效数位:从左边第一个不为0的数算起,小数点和负号不计入有效位数;scale表示精确到多少位,指精确到小数点左边或右边多少位(+-决定)。
    g)  Number值类型举例:

    实际值

    数据类型

    存储值

    1234567.89

    Number

    1234567.89

    1234567.89

    Number(8)

    1234567

    1234567.89

    Number(6)

    出错

    1234567.89

    Number(9,1)

    1234567.9

    1234567.89

    Number(9,3)

    出错

    1234567.89

    Number(7,2)

    出错

    1234567.89

    Number(5,-2)

    1234600

    1234511.89

    Number(5,-2)

    1234500

    1234567.89

    Number(5,-4)

    1230000

    1234567.89

    Number(*,1)

    1234567.9

    0.012

    Number(2,3)

    0.012

    0.23

    Number(2,3)

    出错


    h)  关于precision, scale也可以作如下表述
    定点数的精度(p)和刻度(s)遵循以下规则:
    1)  当一个数的整数部分的长度 > p-s 时,Oracle就会报错
    2)  当一个数的小数部分的长度 > s 时,Oracle就会舍入。
    3)  当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。
    4)  当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入

    NUMBER类型的子类
    a)  oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集。
    b)  int类型只能存储整数;number可以存储浮点数,也可以存储整数。
    c)  在oracle数据库建表的时候,decimal,numeric不带精度,oracle会自动把它处理成INTEGER;带精度,oracle会自动把它处理成number。
    d)  Oracle只用NUMBER(m,n)就可以表示任何复杂的数字数据。
    e)  decimal,numeric,int等都为SQL、DB2等数据库的数据类型,ORACLE为了兼容才将其引入;但实际上在ORACLE内部还是以NUMBER的形式将其存入。
  • 相关阅读:
    linux 解压tgz 文件指令
    shell 脚本没有执行权限 报错 bash: ./myshell.sh: Permission denied
    linux 启动solr 报错 Your Max Processes Limit is currently 31202. It should be set to 65000 to avoid operational disruption.
    远程查询批量导入数据
    修改 MZTreeView 赋权节点父节点选中子节点自动选中的问题
    关于乱码的问题解决记录
    我的网站优化之路
    对设计及重构的一点反思
    我的五年岁月
    奔三的路上
  • 原文地址:https://www.cnblogs.com/goingforward/p/5764504.html
Copyright © 2011-2022 走看看