sqlldr 最后一个字段为空怎么办,导入不正确

守望者_xwm 2012-05-15 10:58:10
最近写了一个ctl 用于导入数据 格式如下:
options (rows=40000,bindsize=209714452,readsize=209714452,skip_index_maintenance=true)
load data
infile '/opt/oracle/cbiz128.txt'
append into table T_BIZ
TRAILING NULLCOLS
(BIZID integer TERMINATED BY ',',
CUSTID integer TERMINATED BY ',',
TCOUNT integer TERMINATED BY ',',
SENDDATE date 'yyyy-mm-dd hh24:mi:ss' TERMINATED BY ',',
SCHDATE date 'yyyy-mm-dd hh24:mi:ss' TERMINATED BY x '0A')

但因为最后一个字段是空的 导入一直导不进去 ,数据如下:
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,
20120120115648,88364,1000,2012-01-20 12:01:21,

最后一个字段是日期型的 ,求解
...全文
613 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
守望者_xwm 2012-05-15
  • 打赏
  • 举报
回复
如果是写成
options (rows=40000,bindsize=209714452,readsize=209714452,skip_index_maintenance=true)
load data
infile '/opt/oracle/cbiz128.txt'
append into table T_BIZ
fields terminated by ','
(BIZID integer,CUSTID integer,TCOUNT integer,SENDDATE date 'yyyy-mm-dd hh24:mi:ss',SCHDATE date 'yyyy-mm-dd hh24:mi:ss')
就会报错显示为
  Column Name                  Position   Len  Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
BIZID FIRST 4 INTEGER
CUSTID NEXT 4 INTEGER
TCOUNT NEXT 4 INTEGER
SENDDATE NEXT * , DATE yyyy-mm-dd hh24:mi:ss
SCHDATE NEXT * , DATE yyyy-mm-dd hh24:mi:ss

Record 1: Rejected - Error on table T_BIZ, column SENDDATE.
ORA-01840: input value not long enough for date format
duanning397 2012-05-15
  • 打赏
  • 举报
回复
回答错了。。。
贴出我的ctl文件(windows下的)
load data
infile 'd:\33.txt'
append into table T_BIZ
fields terminated by ','
TRAILING NULLCOLS
(BIZID,
CUSTID,
TCOUNT,
SENDDATE DATE 'YYYY-MM-DD HH24:MI:SS',
SCHDATE DATE 'YYYY-MM-DD HH24:MI:SS'
)
duanning397 2012-05-15
  • 打赏
  • 举报
回复
options (rows=40000,bindsize=209714452,readsize=209714452,skip_index_maintenance=true)
load data
infile '/opt/oracle/cbiz128.txt'
append into table T_BIZ
fields terminated by ','
TRAILING NULLCOLS ---你试试,主要是少了这个参数
(BIZID integer,CUSTID integer,TCOUNT integer,SENDDATE date 'yyyy-mm-dd hh24:mi:ss',SCHDATE date 'yyyy-mm-dd hh24:mi:ss')

ODU全称为Oracle Database Unloader,是类似于Oracle的DUL的软件,用于直接从Oracle数据库的数据文件中获取表数据。在各种原因造成的数据库不能打开时,用于抢救数据,最大限度地减少数据丢失。 ODU有什么功能特点? 支持的Oracle数据库版本包括8i,9i,10g,11g 自动检测数据文件的表空间号和文件号 在有SYSTEM表空间的情况下,自动获取数据字典信息。 支持各种表,普通的HEAP表,IOT表,聚簇(CLUSTER)表。 DESC表,以显示表的列定义 支持10g及以上的大文件(BigFile)表空间 列出表的分区和子分区 支持表被truncate后的数据恢复 支持表被drop后的数据恢复 支持压缩表 支持在没有SYSTEM表空间和数据字典损坏的情况下恢复数据,在没有数据字典可用时,ODU能够自动判断数据的类型 支持IOT表导出: 普通IOT表的导出 压缩IOT表的导出 支持IOT表溢出段 支持IOT表分区(包括子分区) 只能在有SYSTEM表空间时才能导出IOT表 支持多种平台的数据库,包括AIX、LINUX、HPUX、SOLARIS、WINDOWS等。能够在一个平台上导出其他平台的数据,比如在Windows 32位系统上,使用AIX系统上的数据文件导出数据。 支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT, BINARY DOUBLE (10g+) 导出的数据格式包括纯文本和DMP文件两种。以纯文本导出时,能够自动生成建表的SQLSQLLDR导入所需的CONTROL文件(.CTL) 支持同一个库中不同的块大小的数据文件。 全面支持LOB字段: 支持CLOB、NCLOB和BLOB CLOB支持Big Endian和Little Endian字节序 支持LOB分区,子分区 支持同一个表中,不同LOB列使用不同CHUNCK SIZE的情况 CLOB数据可以导出到与其他列相同的文件中,或存储到单独的文件中 LOB列只有在SYSTEM表空间存在的情况下才能导出 支持多种字符集之间的转换,能够正确的转换CLOB、NCLOB、NVARCHAR2列类型的数据到指定的字符集。 ODU全面支持64位系统,支持超过4G大小的数据文件。 支持复制操作系统命令不能复制的坏文件 模拟oracle的dump块功能,能够dump数据文件块的数据 目前不支持的功能: 11g的SecureFiles ------------------------ 详细使用说明见 http://www.laoxiong.net/odu

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧