使用kettle工具将数据从Mysql迁移至达梦数据库时,输出错误:记录超长

2021/09/28 17:26:58 - 表输出.0 - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : Because of an error, this step can't continue:
2021/09/28 17:26:58 - 表输出.0 - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : org.pentaho.di.core.exception.KettleException: 
2021/09/28 17:26:58 - 表输出.0 - Error batch inserting rows into table [oa_mail].
2021/09/28 17:26:58 - 表输出.0 - Errors encountered (first 10):
2021/09/28 17:26:58 - 表输出.0 - 
2021/09/28 17:26:58 - 表输出.0 - 
2021/09/28 17:26:58 - 表输出.0 - Error updating batch
2021/09/28 17:26:58 - 表输出.0 - 记录超长
2021/09/28 17:26:58 - 表输出.0 - 
2021/09/28 17:26:58 - 表输出.0 - 
2021/09/28 17:26:58 - 表输出.0 -  at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:349)
2021/09/28 17:26:58 - 表输出.0 -  at org.pentaho.di.trans.steps.tableoutput.TableOutput.processRow(TableOutput.java:125)
2021/09/28 17:26:58 - 表输出.0 -  at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2021/09/28 17:26:58 - 表输出.0 -  at java.lang.Thread.run(Thread.java:745)
2021/09/28 17:26:58 - 表输出.0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseBatchException: 
2021/09/28 17:26:58 - 表输出.0 - Error updating batch
2021/09/28 17:26:58 - 表输出.0 - 记录超长
2021/09/28 17:26:58 - 表输出.0 - 
2021/09/28 17:26:58 - 表输出.0 -  at org.pentaho.di.core.database.Database.createKettleDatabaseBatchException(Database.java:1427)
2021/09/28 17:26:58 - 表输出.0 -  at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:296)
2021/09/28 17:26:58 - 表输出.0 -  ... 3 more
2021/09/28 17:26:58 - 表输出.0 - Caused by: java.sql.BatchUpdateException: 记录超长
2021/09/28 17:26:58 - 表输出.0 -  at dm.jdbc.driver.DBError.throwBatchUpdateException(DBError.java:687)
2021/09/28 17:26:58 - 表输出.0 -  at dm.jdbc.a.a.a(DBAccess.java:565)
2021/09/28 17:26:58 - 表输出.0 -  at dm.jdbc.driver.DmdbPreparedStatement.do_executeLargeBatch(DmdbPreparedStatement.java:504)
2021/09/28 17:26:58 - 表输出.0 -  at dm.jdbc.driver.DmdbPreparedStatement.do_executeBatch(DmdbPreparedStatement.java

 从网上查找相关回答后,基本都是通过设置字段长度。达梦数据库可存储大文本的数据类型有text、blob、clob、image,且最大长度都是1-2G,相当于oracle long字段的长度,blob和image类型的字段内容必须存储十六进制数字串内容。我在将疑似值超长的字段设置为text后,依旧不行。后通过在DM管理工具中设置该表的存储选项--》启用超长记录,即可解决该错误。

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐