oracle导入文件时,日期格式问题
load data
infile ‘/iot/opthb/TIBS_HOME/xcx/test/loadfile.txt‘
truncate into table zhicai_record_tmp
fields terminated by ‘ ‘
trailing nullcols(src_file_name,create_date,state_date,des_file_name)
用这个模板导入数据时
loadfile.txt:
JSWLWYFCG_-_01111453.20170502_-_2357+0800.ctc.dat 20170502235916 20170503000027 T_IOT_DDR_20170502.025.144.055
JSWLWYFCG_-_01111454.20170502_-_2357+0800.ctc.dat 20170502235917 20170503000027 T_IOT_DDR_20170502.025.144.056
JSWLWYFCG_-_01111455.20170502_-_2357+0800.ctc.dat 20170502235917 20170503000042 T_IOT_DDR_20170502.025.144.057
JSWLWYFCG_-_01111456.20170502_-_2357+0800.ctc.dat 20170502235917 20170503000043 T_IOT_DDR_20170502.025.144.058
JSWLWYFCG_-_01111457.20170502_-_2358+0800.ctc.dat 20170502235918 20170503000058 T_IOT_DDR_20170502.025.144.059
JSWLWYFCG_-_01111458.20170502_-_2358+0800.ctc.dat 20170503000331 20170503000347 T_IOT_DDR_20170502.025.144.075
JSWLWYFCG_-_01111459.20170502_-_2358+0800.ctc.dat 20170503000332 20170503000347 T_IOT_DDR_20170502.025.144.076
JSWLWYFCG_-_01111460.20170502_-_2359+0800.ctc.dat 20170503000332 20170503000402 T_IOT_DDR_20170502.025.144.077
JSWLWYFCG_-_01111461.20170502_-_2359+0800.ctc.dat 20170503000333 20170503000402 T_IOT_DDR_20170502.025.144.078
JSWLWYFCG_-_01111462.20170502_-_2359+0800.ctc.dat 20170503000333 20170503000416 T_IOT_DDR_20170502.025.144.079
会出现
Record 9: Rejected - Error on table ZHICAI_RECORD_TMP, column CREATE_DATE.
ORA-01861: literal does not match format string
这种错误,主要是因为日期格式不匹配,这时要对导入的数据进行格式化处理
load data
infile ‘/iot/opthb/TIBS_HOME/xcx/test/loadfile.txt‘
append into table zhicai_record_tmp
fields terminated by ‘ ‘
trailing nullcols(src_file_name,
create_date "to_date(:create_date,‘yyyymmddhh24miss‘)",
state_date "to_date(:create_date,‘yyyymmddhh24miss‘)",
des_file_name)
用这个模板导入数据时,便不会出现以上报错
oracle导入文件时,日期格式问题
标签:oracle
小编还为您整理了以下内容,可能对您也有帮助:
在oracle数据库插入日期时格式不对
在oracle数据库插入日期时格式不对,修改办法如下:
1、使用具有日期和时间格式的表来查询相关数据。
2、查询指定日期(2019/03/04)的数据。 默认值是周期与0点0分开计算。
3、如果要指定开始计算的次数,则上述句点语法将更改为OUT_PROCESS_TIME>TO_DATE('2019/03/04 10:00:00','YYYY/MM/DD HH24/MI/SS')。
4、第一步是找到定义的时间单位。
5、在数据库中找到此时间函数的定义。 这是一个参数集。 将使用数据库的相关整数转换。 它通常位于sys_base表中。
6、work_time<14*60/10,这里14表示14点,即下午2点。60是每小时60分钟设置的公共值,即上面sys_base表中的时间值。
按照上述操作,便可以解决该问题。
oracle里面建了一张表字段类型为date但是插入数据日期格式为:12-MAN-12时提示月份错误
插入数据是:insert into emp_user values(10,'zhansan','12-MAR-10');
你以前这样写之所以不报错是因为oracle替你进行了转换,将字符串'12-MAR-10'转换成了日期类型。
现在这么写不成了,是因为你的环境变量改变了:
点我的电脑->属性->高级->环境变量->系统变量
把nls_date_format设成dd-mon-rr(我理解12-MAR-10是2010年3月12日,这个格式你可以自己根据实际情况改)
把nls_date_language设成AMERICAN
上面2个变量如果没有,你可以新建
之后,就肯定好了
oracle日期格式转换的问题
描述不太清楚,大概了解,两种可能,
1、表A的日期格式都是yyyyMMdd,那你to_date(日期,'yyyyMMdd')要这样写,否则长度是不够的
2、如果在to_date(日期,'yyyyMMdd hh24miss')时候报valid 错误,说明你的日期格式不正确,比如年份、月份、天数不合法,如9999年13月32日,这肯定不对
另外建议你,在学习使用oracle的过程中,报的错误,直接说oracle的错误编号就行,
ORA-01843 not a valid month追问数据没问题,若是可以的话,希望能留下QQ,我发一些截图给你
追答317789250
oracle日期格式转换的问题
描述不太清楚,大概了解,两种可能,
1、表A的日期格式都是yyyyMMdd,那你to_date(日期,'yyyyMMdd')要这样写,否则长度是不够的
2、如果在to_date(日期,'yyyyMMdd hh24miss')时候报valid 错误,说明你的日期格式不正确,比如年份、月份、天数不合法,如9999年13月32日,这肯定不对
另外建议你,在学习使用oracle的过程中,报的错误,直接说oracle的错误编号就行,
ORA-01843 not a valid month追问数据没问题,若是可以的话,希望能留下QQ,我发一些截图给你
追答317789250
从oracle数据库取的日期型数据存入sqlserver05数据库,显示的格式不对
select to_char(sysdate ,'YYYY-MM-DD HH24:mm:ss') from al;
---Oracle 导出格式
select cast(char as datetime)
---MSSQL导入格式
如何解决sql和oracle时间格式不同无法插入的问题
方法如下: 1,先imp到oracle,再从oracle转换在sqlserver 还有一种方法,我的用第3种办法就解决问题了 祝你好运~ 直接还原,注意名字要一致 你先追问不是很明白啊~~~