手机
当前位置:查字典教程网 >编程开发 >Oracle教程 >PL/SQL number型数据
PL/SQL number型数据
摘要:number(,)精度p取值范围1~38有效位s取值范围-84~127最高整数位数=p-ss正数,小数点右边指定位置开始四舍五入s负数,小数...

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 number型数据】相关文章:

PL/SQL 类型格式转换

Oracle数据库

Oracle Number型数值存储与转换的实现详解

在ORACLE移动数据库文件

ORACLE PL/SQL 触发器编程篇介绍

sql server 2005导出数据到oracle 11g

Oracle怎么导入数据

PL/SQL的几个概念区别

oracle常用数据类型说明

oracle bbed恢复删除数据实例

精品推荐
分类导航