Я передал значение DATE из базы данных Informix в базу данных Redbrick без какой-либо обработки. Но шаг «Вставить / обновить» завершился ошибкой:
Invalid conversion from DATE to TIMESTAMP
Оба столбца в исходной и целевой базах данных имеют тип DATE.
Я подумал, что это может быть проблема с форматом, поэтому я использовал шаг «Выбор значений», чтобы явно установить формат даты. Но это не помогло.
Ниже приведен полный стек:
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - ERROR (version 8.2.0.0-342, build 8.2.0.0-342 from 2018-11-14 10.30.55 by buildguy) : Error in step, asking everyone to stop because of:
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - ERROR (version 8.2.0.0-342, build 8.2.0.0-342 from 2018-11-14 10.30.55 by buildguy) : org.pentaho.di.core.exception.KettleDatabaseException:
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - Couldn't get row from result set
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 -
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - Unable to get value 'Date' from database resultset, index 3
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - ** Error ** (11002) [Red Brick Warehouse JDBC Driver] : Column 4 : Invalid conversion from DATE to TIMESTAMP.
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 -
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 -
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.core.database.Database.getRow(Database.java:2764)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.core.database.Database.getRow(Database.java:2734)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.core.database.Database.getLookup(Database.java:3103)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.core.database.Database.getLookup(Database.java:3093)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.core.database.Database.getLookup(Database.java:3089)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.trans.steps.insertupdate.InsertUpdate.lookupValues(InsertUpdate.java:89)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.trans.steps.insertupdate.InsertUpdate.processRow(InsertUpdate.java:299)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at java.lang.Thread.run(Thread.java:748)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseException:
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - Unable to get value 'Date' from database resultset, index 3
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - ** Error ** (11002) [Red Brick Warehouse JDBC Driver] : Column 4 : Invalid conversion from DATE to TIMESTAMP.
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 -
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.core.row.value.ValueMetaBase.getValueFromResultSet(ValueMetaBase.java:5310)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.core.database.BaseDatabaseMeta.getValueFromResultSet(BaseDatabaseMeta.java:2107)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.core.database.DatabaseMeta.getValueFromResultSet(DatabaseMeta.java:2982)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.core.database.Database.getRow(Database.java:2756)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - ... 8 more
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - Caused by: java.sql.SQLException: ** Error ** (11002) [Red Brick Warehouse JDBC Driver] : Column 4 : Invalid conversion from DATE to TIMESTAMP.
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at redbrick.utils.ErrorHandlers.errorHandler(ErrorHandlers.java:44)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at redbrick.utils.ErrorHandlers.errorHandler(ErrorHandlers.java:29)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at redbrick.jdbc.RBWResultSet.errorHandler(RBWResultSet.java:3952)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at redbrick.jdbc.RBWResultSet.getTimestamp(RBWResultSet.java:2993)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - at org.pentaho.di.core.row.value.ValueMetaBase.getValueFromResultSet(ValueMetaBase.java:5292)
2019/06/14 16:48:39 - Insert / update LOAD_CONTR.0 - ... 11 more
В чем может быть проблема? Неправильный формат даты? Если да, какой запрос мне нужно выполнить, чтобы получить формат даты обеих баз данных?
Я посмотрел на DDL. Тип столбца - ДАТА:
create table ... (
...
DATE_FIRST DATE,
DATE_LAST DATE,
...