数据库里这个字段的定义为NUMBER(20,2).
在测试的时候发现如果导入的数据确实达到了这个长度和精度,比如 199999999999999999.88,导入之后数据库中这个字段的后面几位会发生变化。
导入的时候是用分隔符的。这种长度的数值的字段控制文件需要怎么处理吗?
在测试的时候发现如果导入的数据确实达到了这个长度和精度,比如 199999999999999999.88,导入之后数据库中这个字段的后面几位会发生变化。
导入的时候是用分隔符的。这种长度的数值的字段控制文件需要怎么处理吗?
X
----------------------
10.00
10.20
10.22
200000000000000000.00
----------
10
10.2
10.22
2.0000E+17SQL> col x format fm9999999999999999.99
SQL> / X
--------------------
10.
10.2
10.22
####################SQL> col x format fm999999999999999999999999.9999
SQL> /. X
------------------------------
10.
10.2
10.22
199999999999999999.88
----------------------------------------表:create table test(x number(20, 2));
------------------------------------------
控制文件:
LOAD DATA
INFILE *
INTO TABLE test
FIELDS TERMINATED BY ','
(x )
BEGINDATA
10
10.2
10.22
199999999999999999.88
如果在sqlplus下,设置
sql>set numwidth 25;
后,再查询