我想把oracle中的数据全部导进其他的数据库,现在由于数据量过大,所以我选择了批处理,但是如果有一条数据报错,那么全部数据都不能执行成功,而且commit后直接
报错了循环也中断了,请问我该怎么处理
本人菜鸟,求各位大佬帮助
你下面不是有logger.info这行代码这是可以捕捉到异常的,看异常一点一点分析吧。
“如果有一条数据报错,那么全部数据都不能执行成功”,这个可以用oracle事务。
java倒是不大了解,应该可以根据oracle返回值判断事务是否执行成功,然后中断吧。
你看看报错信息,应该会有相关的SQL语句信息在里面,然后你再去找对应的SQL了。
查看日志文件,找对应的错误
报错之前打印出来。或者存在局部变量中,catch异常之后,把这个局部变量的值打印出来。
例如:
Strings=null;
try
{
x=next-data();
xxxxx
其他处理代码。
xxxx
}catch(Exceptione){
这里打印s即可。
}
你这里应该可以只记录索引i。异常时打印出来。
事务的特性,你虽然1000条执行一次,但是没有提交,如果有一条报错肯定都回滚了,你可以1000条执行一次,然后马上提交,这样如果一个批次出现异常,那么只会影响
这1000条,这1000条会回滚,然后查看后台日志,看看具体是哪一条
这是我打印的SQL。
我是想把所有的数据导进新的库中,其中我还要对数据进行相应的改变,所以需要写这个程序。
其次我要执行的任务是晚上下班时,将程序跑起来,然后第二天所有程序导进新的数据库,然后错误的数据能够打印到日志里面。
可以程序验证数据有效性,有误的log、跳过。
有人给我说过可以自定义异常,这样只要能定到是那条数据有错了,能拿到错误的Object数组就好处理了,所以想问问,到底该怎么做
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。