Переполнение поля DATETIME в Oracle в SQL2005 в SSIS - PullRequest
2 голосов
/ 06 января 2011

Я импортирую данные из Oracle в SQL Server 2005, используя SSIS. Я думаю, что поля даты и времени в Oracle хранятся с большей точностью, чем позволяют поля «DATETIME» в SQL Server 2005, что приводит к ошибкам переполнения. Какая лучшая практика для получения стола?

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

Я прочитал /1685192/rabota-s-metkoi-vremeni-datoi-vremeni-pri-kopirovanii-dannyh-iz-oracle-na-sql-server-s-ispolzovaniem-sluzhb-ssis, и это могло бы сработать, но я должен был бы сделать это для каждого поля, для каждой таблицы, и я бы предпочел универсальную настройку или процесс ...

Есть идеи?

Ответы [ 4 ]

3 голосов
/ 05 июня 2013

Я предлагаю использовать следующую инструкцию в вашем операторе SELECT:

CASE WHEN date_birth < TO_DATE('01-01-1753','DD-MM-YYYY') THEN NULL
ELSE to_char(date_birth, 'YYYY-MM-DD HH24:MI:SS') END AS date_birth
3 голосов
/ 27 июня 2012

Проблема в том, что SQL Server ограничен в том, какие даты являются действительными (с 1 января 1753 г. по 31 декабря 9999 г.), в то время как Oracle датируется с 1 января 4712 г. до н.Oracle менее 1 января 1753 года переполнит тип данных sql-сервера datetime.

Если вы перейдете на Sql 2008, вы можете использовать тип Datetime2 для решения этой проблемы, поскольку он имеет действительные даты с 0001-01-01 по9999-12-31.

Подробнее см. Здесь: Sql Server Тип даты и времени

А здесь: Тип даты Oracle

2 голосов
/ 26 июня 2012

Есть еще одна причина.Убедитесь, что даты действительны.Мы находимся в середине этого, и у нас есть годы, определенные как что-то вроде 5096, которые, очевидно, не могут быть перемещены на сервер SQL ... то же самое происходит, если у вас год 0207 вместо 2007.

0 голосов
/ 18 февраля 2011

Просто отметьте это как «отвеченный», поскольку, похоже, глобальных настроек нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...