一个Kettle异常的解决方式

最近kettle中的几个转换抛出如下异常:

Because of an error, this step can't continue: 

org.pentaho.di.core.exception.KettleException: 

Error inserting row into table [BOND_ISSUE] with values: [291209410397], [8067], [8067], [中国xxxxx产业股份有限公司2009年度第一期xxxxxxx], [6], [1], [1420], [2], [2009/03/24 00:00:00.000], [xxxxx信息产业股份有限公司], [99], [null], [null], [xxxx信评估有限公司、xxxx国际信用评级有限公司], [A-1], [xxxxx银行股份有限公司], [2], [2009/03/24 00:00:00.000], [xxxxxx市场机构投资者(国家法律、法规禁止购买者除外)。], [\利率招标\簿记建档\], [100], [1000000], [null], [2009/03/30 00:00:00.000], [2009/03/31 00:00:00.000], [800000000], [800000000], [null], [2009/04/01 00:00:00.000], [89], [null], [null], [2010/03/26 00:00:00.000], [2011/05/30 10:02:49.000], [360064768821], [null], [null], [null], [null], [null]

 Unexpected error inserting row

-32363

at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:445)

at org.pentaho.di.trans.steps.tableoutput.TableOutput.processRow(TableOutput.java:128)

at org.pentaho.di.trans.step.RunThread.run(RunThread.java:50)

at java.lang.Thread.run(Thread.java:662)

Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 

Unexpected error inserting row

 -32263

at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:341)

... 3 more

Caused by: java.lang.ArrayIndexOutOfBoundsException: -32263

at oracle.jdbc.driver.OraclePreparedStatement.setupBindBuffers(OraclePreparedStatement.java:2677)

at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9270)

at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:210)

at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:315)

... 3 more

报错的是一个 表输出 组件

解决方式: 表输出组件默认为使用批量插入,数量为1000条。将1000条修改为500条,转换就可以正常执行了。

分析:看样子是 ojdbc的bug。当前用的是ojdbc6。已经是最新的ojdbc了。报问题的时机都是在已经batch到库中1000条,进行第二个1000条插入的时候就报错了

所以认为跟batch的记录条数有关系。降低条数后果然不再报错。因为异常中有 java.lang.ArrayIndexOutOfBoundsException: -32263 。我猜测ojdbc用一维数组保存了

batch条数 x 记录列数 。当batch很大时,超出了整数能表示的数组下标最大值时,ojdbc报错。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
*** error 56: cannot open file 是一个错误信息,表示无法打开文件。根据提供的引用内容,这个错误可能是由于以下原因之一引起的: 1. 文件路径错误:可能是文件路径没有正确设置或者文件不存在。您可以检查文件路径是否正确,并确保文件存在。 2. 权限问题:可能是由于权限限制导致无法访问该文件。您可以尝试使用管理员权限或者检查文件的权限设置。 3. 编译器设置问题:可能是由于编译器设置不正确导致的。您可以检查编译器的设置,特别是头文件路径是否正确设置并添加到工程中。 综上所述,*** error 56: cannot open file 错误可能是由于文件路径错误、权限问题或者编译器设置问题引起的。您可以根据具体情况进行排查和调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Windows下MySQL 5.7无法启动的解决方法](https://download.csdn.net/download/weixin_38722944/14838296)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [keil5 之error 56: cannot open file](https://blog.csdn.net/RONG_YAO/article/details/112555986)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [问题:在keil仿真时出现error 56: can‘t open file原因总结](https://blog.csdn.net/qq_48701278/article/details/115640961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值