加载有理数我有一个数字的数据文件,格式如下:如何在Oracle数据库
xx.xx (example : 0.3)
我有一个逗号,而不是点改造他们在数据库中装载。这是我的控制文件:
LOAD DATA
REPLACE
INTO TABLE USER.MYTABLE
FIELDS TERMINATED BY '$'
TRAILING NULLCOLS
(FIELD1,FIELD2,FIELD3,FIELD4,FIELD5,
NUMBER_FIELD "to_number(replace(:NUMBER_FIELD, '.', ','))",
FIELD6,FIELD7,FIELD8)
它工作良好,但0.3变成了3,没有零。那里有什么问题?
谢谢
我改变了我的控制文件的建议:
LOAD DATA
REPLACE
INTO TABLE USER.MYTABLE
FIELDS TERMINATED BY '$'
TRAILING NULLCOLS
(FIELD1 DECIMAL(6,0),
FIELD2 VARCHAR,
FIELD3 VARCHAR,
FIELD4 VARCHAR,
FIELD5 VARCHAR,
FIELD6 FLOAT,
FIELD7 FLOAT,
FIELD8 DATE,
FIELD9 VARCHAR)
数据线这样的:
1 $ 005 $ 05 $ 1 $ blablabla $ $ 0.50 0 $ 01/02/1996 $ 01
我有错误。
日志文件:
Column Name Position Len Term Encl Datatype
- 我不知道lenght是如何计算的,但它是错误的
- 我有错误的FIELD1:值大于指定的精度更大的允许本专栏。
- 日期字段上的错误表示该月的某一天必须在该月的1日和最后一天之间。
如果您有新问题,请提出一个新问题。包含要加载的表的DDL,以及一些实际的错误数据(来自.bad文件)。但是我只能指定它所关注的字段类型 - 删除“VARCHAR”规范和“DECIMAL” - 应该隐式转换。对于日期一,是文件DD/MM/YYYY中的值,或实际上是MM/DD/YYYY - 错误表明后者。 [您可以指定格式掩码](https://docs.oracle.com/cd/E11882_01/server.112/e22490/ldr_field_list.htm#sthref792)。 –
不,这是文件中的DD/MM/YYYY,但最后我没有指定日期并且它被隐式转换。所以它被解决 – mlwacosmos