2016-04-13 3 views
1

Я делаю перенос данных из источника данных Oracle 9i к Sql Server 2008 один, но это не удается из-за этой ошибки: "Only dates between January 1, 1753 and December 31, 9999 are accepted.'
Проблема заключается в том, что на сервере базы данных Sql 2008, Я использую datetime2 datatype, который позволяет более широкий диапазон дат. вот полный след, который показывает Spoon:диапазон дат на Pentaho ETL

2016/04/13 15:45:21 - copy_maffiche_commune_to_s - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : Errors detected! 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : Because of an error, this step can't continue: 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - ERROR (version 6.0.1.0-386, build 1 from 2015-12-03 11.37.25 by buildguy) : org.pentaho.di.core.exception.KettleException: 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - Error inserting row into table [AFFICHE_COMMUNE] with values: [25063], [24], [224], [49], [3], [0206/02/26 00:00:00.000], [0], [0], [null] 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - offending row : [NUM_DOSSIER Integer(6)], [INDICE String(3)], [CODE_SERVICE_FONCIER Integer(3)], [CODE_AFFICHAGE Integer(3)], [CODE_COMMUNE Integer(4)], [DATE_ETAPE Date], [REFERENCE Integer(4)], [NUMERO_DEPOT Integer(6)], [VOLUME_DEPOT String(10)] 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - Error setting value #6 [Date] on prepared statement 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - Only dates between January 1, 1753 and December 31, 9999 are accepted. 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:377) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.processRow(TableOutput.java:118) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at java.lang.Thread.run(Thread.java:744) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - offending row : [NUM_DOSSIER Integer(6)], [INDICE String(3)], [CODE_SERVICE_FONCIER Integer(3)], [CODE_AFFICHAGE Integer(3)], [CODE_COMMUNE Integer(4)], [DATE_ETAPE Date], [REFERENCE Integer(4)], [NUMERO_DEPOT Integer(6)], [VOLUME_DEPOT String(10)] 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - Error setting value #6 [Date] on prepared statement 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - Only dates between January 1, 1753 and December 31, 9999 are accepted. 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at org.pentaho.di.core.database.Database.setValues(Database.java:1023) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:254) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - ... 3 more 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - Error setting value #6 [Date] on prepared statement 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - Only dates between January 1, 1753 and December 31, 9999 are accepted. 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at org.pentaho.di.core.row.value.ValueMetaBase.setPreparedStatementValue(ValueMetaBase.java:4867) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at org.pentaho.di.core.database.Database.setValue(Database.java:1005) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at org.pentaho.di.core.database.Database.setValues(Database.java:1021) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - ... 4 more 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - Caused by: java.sql.SQLException: Only dates between January 1, 1753 and December 31, 9999 are accepted. 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at net.sourceforge.jtds.jdbc.DateTime.packDate(DateTime.java:318) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at net.sourceforge.jtds.jdbc.DateTime.<init>(DateTime.java:126) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setParameter(JtdsPreparedStatement.java:444) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setTimestamp(JtdsPreparedStatement.java:840) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setTimestamp(JtdsPreparedStatement.java:870) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - at org.pentaho.di.core.row.value.ValueMetaBase.setPreparedStatementValue(ValueMetaBase.java:4811) 
2016/04/13 15:45:21 - write to [AFFICHE_COMMUNE].0 - ... 6 more 

В чем может быть причина этой проблемы?

+1

Похоже, что подготовленное заявление Pentaho создает для типов данных Date, оно не использует ваши типы данных назначения, а представляет собой предварительно заданный тип данных, возможно, datetime, следовательно, ошибку. –

+0

спасибо за подсказку отладки @KyleHale :) Можно ли изменить, как Pentaho использует типы данных? – mounaim

ответ

2

Решение состоит в использовании типа данных Timestamp для полей, которые отображаются в поля datetime2 в SQL Server, поскольку Date неявно преобразуется в поле datetime.

Для изменения типов данных после ввода таблицы в разделе «Выбрать значения» есть вкладка метаданных, вы можете установить типы данных для своих полей ввода.

Я попытаюсь получить снимок экрана позже.

+0

как я могу это достичь? – mounaim

+0

@mounaim Обновленный ответ для вас. –

+0

любой снимок экрана для этой операции? Если я могу модифицировать файлы .ktr (файлы преобразования xml), которые также были бы замечательными :) – mounaim

Смежные вопросы