• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PL/SQL number型数据

    number(p>,s>)

    精度p取值范围1~38
    有效位s取值范围-84~127

    最高整数位数=p-s


    s正数,小数点右边指定位置开始四舍五入
    s负数,小数点左边指定位置开始四舍五入
    s是0或者未指定,四舍五入到最近整数
    当p小于s时候,表示数字是绝对值小于1的数字,且从小数点右边开始的前s-p 位必须是0,保留s位小数。


    --num_test start------------------------------------------------

    Connected to Oracle9i Enterprise Edition Release 9.0.1.1.1
    Connected as aspire


    SQL>
    SQL> SET linesize 1000;
    SQL> CREATE TABLE hjm_num_test
    2 (a NUMBER,
    3 b NUMBER(5,2),
    4 c NUMBER(5,-2),
    5 d NUMBER(5,0),
    6 e NUMBER(5),
    7 f NUMBER(2,5));

    Table created

    SQL> INSERT INTO hjm_num_test
    2 (a,b,c,d,e,f) VALUES(123.3333,123.3333,123.3333,123.3333,123.3333,-0.0003);

    1 row inserted

    SQL> INSERT INTO hjm_num_test
    2 (a,b,c,d,e,f) VALUES(197.9333,197.9333,197.9333,197.9333,197.9333,0.00012567);

    1 row inserted

    SQL> COMMIT;

    Commit complete

    SQL> SELECT * FROM hjm_num_test;

    A B C D E F
    1 123.3333 123.33 100 123 123 -0.00030
    2 197.9333 197.93 200 198 198 0.00013

    (在pl/sql dev sql窗口显示)

    --num_test end--------------------------------------------------------

    似乎结果很正确,可是现在出来一个问题,当我不在pl/sql dev窗口运行,我在isqlplus中运行,结果就有点不一样了,注意,第1行的F列:

    A B C D E F
    123.3333 123.33 100 123 123 -.0003
    197.9333 197.93 200 198 198 .00013

    (在isqlplus中显示)

    它舍去了末尾的0!在sqlplus下测试也是同样的效果。

    不过本人的意向应该是还是保留那个0的,因为number(2,5)它毕竟指定了有效位是5位。

    上一篇:PL/SQL数据类型及操作符
    下一篇:ORACLE 常用的SQL语法和数据对象
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PL/SQL number型数据 SQL,number,型,数据,SQL,number,