使用tOracleOutput时未捕获到Talend BatchUpdateException

时间:2014-07-07 08:43:09

标签: java oracle talend

我正在开发一项工作,我将数据从某些表传输到其他表。有时输入中的字段为空,然后Talend调用方法oracle.jdbc.driver.setNull。有一刻,我收到了一个未被Talend抓住的Oracle错误。错误是:ORA-01401 value inserted too big for the column。但是此时Talend试图在接受它的字段中插入Null值。

我不明白为什么会出现这个错误以及为什么Talend没有抓住它。

以下是例外:

Exception in component tOracleOutput_1
java.sql.BatchUpdateException: ORA-01401: valeur insérée trop grande pour colonne

at oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:459)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:4373)
at oracle.jdbc.driver.OraclePreparedStatement.checkBindTypes(OraclePreparedStatement.java:3650)
at oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:1435)
at maxmigtransformation.t_dm_all_0_1.T_DM_ALL.tOracleInput_1Process(T_DM_ALL.java:11910)
at maxmigtransformation.t_dm_all_0_1.T_DM_ALL.runJobInTOS(T_DM_ALL.java:30394)
at maxmigtransformation.t_dm_all_0_1.T_DM_ALL.main(T_DM_ALL.java:29916)

以下是该职位的截图:

Talend Job

1 个答案:

答案 0 :(得分:0)

我终于解决了我的问题。堆栈跟踪未指示良好的行号。 使用拒绝链接我看到问题不在堆栈跟踪显示的行上。

实际上,有一个字段对于我想要插入的数据量而言太短,但不是显示的堆栈跟踪。我不知道为什么错误说第11910行。

要弄清楚我使用了拒绝链接,然后我手动检查了evry字段以找出错误的位置。