日期:2014-05-17  浏览次数:21110 次

ORACLE日期转换错误
我有一个INSERT是从一个表select过来的,但中间会有好几个字段需要进行to_date的转换,
但有时候会数据异常,转换失败.

有么有办法能避免这个错误,因为不是所有的记录都出错的,现在就是想让正确的记录能正常insert,
而不会因为错误全部回滚掉.

如何操作呢?

最好不要是写函数对字段进行判断,然后给默认值,我就想直接丢掉错误记录就行.

谢谢!

------解决方案--------------------
自己创建一个工具函数,专门用来转换成date的,在这个函数里判断非空或格式错误之类的操作,这样就不会在insert的时候报错了。。
------解决方案--------------------
最好不要是写函数对字段进行判断,然后给默认值,我就想直接丢掉错误记录就行.


给一个特殊的值,然后做删除,这样对垃圾数据也能做个分析处理
而不是直接不插入
------解决方案--------------------
探讨

但是出错了的话,我如何丢掉一整条记录,并且不影响后面的插入呢?

引用:
自己创建一个工具函数,专门用来转换成date的,在这个函数里判断非空或格式错误之类的操作,这样就不会在insert的时候报错了。。

------解决方案--------------------
将数据先导出成文本文件
使用SQLLDR命令将文本文件导入到数据库
SQLLDR可以自动丢弃不符合要求的数据,有个errors参数设定超过多少条就停止导入