Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSIS 170 млн. записей / 15 сообщений из 15, страница 1 из 1
25.06.2020, 23:04
    #39973363
vah
vah
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
Скажите пожалуйста,
как правильно перекинуть 170 млн. записей из Oracle в MSSQL, чтобы не появлялись ошибки типа: too long internal buffer ?


Заранее благодарен.
...
Рейтинг: 0 / 0
26.06.2020, 00:15
    #39973382
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
vah,

это не ошибка SSIS пакета, это трансляция ошибки из драйвера oracle.

Вам на саммом деле скорее всего больше подскажут в ветке Oracle касательно ошибки ORA-01877.

Обычно такое встречается с конвертацией типов дат в строки, посмотрите на предмет каких нибудь приведений. если данные напрямую тянете из таблицы возможно есть смысл сделать view с явным приведением к строковым типам фиксированной длинны.


add: судя по гуглу чаще всего пишут
Cause: This is an internal error.
Action: Please contact Oracle Worldwide Support.

и без шаманства вам не обойтись
...
Рейтинг: 0 / 0
26.06.2020, 06:21
    #39973403
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
vah, проверьте размер поля выводимых данных из Oracle.
Напишите тут.
Подумаем.
...
Рейтинг: 0 / 0
26.06.2020, 09:48
    #39973440
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
Скорее всего проблема в семантике byte/char. Посмотрите кодировку на источнике и тип поля в который ssis пытается это вычитать. Вероятнее всего надо будет поставить DT_WSTR и проверить значение переменной среды NLS_LANG, влияющей на перекодировку типа VARCHAR2 для ораклового драйвера.
...
Рейтинг: 0 / 0
26.06.2020, 12:42
    #39973521
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
vah,

SSIS может качать огромные объемы, если все правильно настроено.

https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1173110&msg=18091868

В вашем случае, выдана ошибка ORACLE на стороне ORACLE. То есть данные просто не смогли быть сформированы в источнике.
...
Рейтинг: 0 / 0
26.06.2020, 14:48
    #39973576
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
a_voronin,

Лёх, вот тут ты не совсем прав. Такую ошибку чаще всего ловит именно клиент, когда в таблице размер определён в семантике char, а клиент пытается вытащить это в такое же количество byte.

Но без описания таблицы источника и маппинга на поля датасорса спорить не буду.
...
Рейтинг: 0 / 0
26.06.2020, 20:15
    #39973662
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
env
Такую ошибку чаще всего ловит именно клиент, когда в таблице размер определён в семантике char, а клиент пытается вытащить это в такое же количество byte.
Оракловый клиент, вы имеете в виду?
...
Рейтинг: 0 / 0
28.06.2020, 16:11
    #39973939
EvAlex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
Какой драйвер Оракл?
Atunity Connector используется?
https://docs.microsoft.com/en-us/sql/integration-services/attunity-connectors?view=sql-server-ver15
...
Рейтинг: 0 / 0
29.06.2020, 11:36
    #39974111
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
alexeyvg,

Под клиентом в данном случае подразумевается тот механизм доступа, который использован для создания соединения. Что именно там под капотом - oledb driver, odbc, attunity, прямое использование библиотек ораклового клиента - из картинки понять трудно.
...
Рейтинг: 0 / 0
29.06.2020, 19:10
    #39974261
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
env
alexeyvg,

Под клиентом в данном случае подразумевается тот механизм доступа, который использован для создания соединения. Что именно там под капотом - oledb driver, odbc, attunity, прямое использование библиотек ораклового клиента - из картинки понять трудно.
Ошибка же ORA-01877
Как я понимаю, если бы ошибка было выше уровня оракла, либо его клиентских драйверов доступа, ошибка бы этот оракловский код не содержала.
...
Рейтинг: 0 / 0
30.06.2020, 08:24
    #39974387
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
alexeyvg
env
alexeyvg,

Под клиентом в данном случае подразумевается тот механизм доступа, который использован для создания соединения. Что именно там под капотом - oledb driver, odbc, attunity, прямое использование библиотек ораклового клиента - из картинки понять трудно.
Ошибка же ORA-01877
Как я понимаю, если бы ошибка было выше уровня оракла, либо его клиентских драйверов доступа, ошибка бы этот оракловский код не содержала.


Это точно до SSIS, иначе мы бы получили бы что-то такое.

SSIS - The value is too large to fit in the column data area of the buffer.
https://stackoverflow.com/questions/24420071/ssis-the-value-is-too-large-to-fit-in-the-column-data-area-of-the-buffer

И судя по некоторой информации происходить она может и без драйвера.

https://www.sql.ru/forum/904268/vremyadata-i-ora-01877
https://www.dba-village.com/village/dvp_forum.OpenThread?ThreadIdA=27764
...
Рейтинг: 0 / 0
30.06.2020, 08:31
    #39974389
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
alexeyvg, a_voronin,

Да, код ошибки явно показывает, что проблема возникает на стороне "клиентских драйверов оракла". Мой посыл в том, что причиной ошибки является "настройка" этих "клиентских драйверов".

И в SSIS чаще всего причиной появления подобной ошибки является несовпадение семантики byte/char на источнике и приёмнике.
...
Рейтинг: 0 / 0
30.06.2020, 09:05
    #39974405
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
env
alexeyvg, a_voronin,

Да, код ошибки явно показывает, что проблема возникает на стороне "клиентских драйверов оракла". Мой посыл в том, что причиной ошибки является "настройка" этих "клиентских драйверов".

И в SSIS чаще всего причиной появления подобной ошибки является несовпадение семантики byte/char на источнике и приёмнике.


А по какому признаку вы отчитаете ошибку на уровне драйвера от ошибки на уровне самого Оракл?
...
Рейтинг: 0 / 0
30.06.2020, 09:49
    #39974427
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
a_voronin,

По достаточно долгому личному опыту работы как с Oracle, так и SSIS.

Одна из причин подобных ошибок - трансляция маппинга однобайтовой строки DT_STR в датасорсе SSIS на уровень клиентского драйвера. Вторая - некорректная настройка NLS_LANG, задающая однобайтовую кодировку для varchar2, при дефолтной многобайтовой на уровне бд.

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

Поэтому
envбез описания таблицы источника и маппинга на поля датасорса спорить не буду.
...
Рейтинг: 0 / 0
30.06.2020, 13:32
    #39974553
Гулин Федор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSIS 170 млн. записей
env,
если вы правы и причина в этом ( поля VARCHAR(byte) а пишутся CHAR )
то можно попробовать отловить ту запись в оракле
где длина превышает порог
( проблема конечно что полей VARCHAR (CHAR) м.б много - и придется искать по всем )
и прогнать с условием в сорсе на 1 запись
если это действительно та причина - то он свалится и на одной записи.

Но вначале да надо глянуть оракл. настрокйи
NLS_CHAR_CHARACTERSET
NLS_LANG
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSIS 170 млн. записей / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]