从informix数据库导出的一个数据文件,数据量比较大,要导入到ORACLE中,其中有此列是DATETime类型的,格式如:'2008-09-14 09:11:43' 用sqlldr导入到oracle中时报了格式不对(ORACLE中定义的字段是DATE类型),请问有什么好办法能将这些数据导进去,考虑过将oracle中DATE类型改为VARCHAR 将数据导入后再改成date类型,但这样工作量相当的大,涉及到将近六十张表,每张表还可能有三四个date类型的字段,另外担心导进来再改成date类型的会出问题,所以来请教各位朋友有没有什么更好的办法!
修改oracle时间格式
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'
这样在oracle会自动把你的字符当做时间类型
测试表:
create table test(id number,logdate date);测试数据文件test.csv
1,2010-01-01 23:50:50
1,2010-11-01 08:50:50控制文件c:\test.ctl
load data
infile 'c:\test.csv'
append
into test
fields terminated by ','
(
id,
logdate "to_date(:logdate,'yyyy-mm-dd hh24:mi:ss')"
)导入
sqlldr test/test control=c:\test.ctl direct=true
还是用2楼的方案吧
2楼的朋友,logdate 前面那个冒号应该没有的吧???