powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема с миграцией данных DB2 -> Oracle
4 сообщений из 4, страница 1 из 1
Проблема с миграцией данных DB2 -> Oracle
    #34333171
Valera S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi, All

Необходимо мигрировать данные с DB2 на Oracle.
Расположение БД:
DB2 на AS/400
Oracle на MS Win 2003

На MS Win были проделаны следующие действия:
1. Поставлен IBM iSeries Access for Windows ver5R3, с которым встал iSeries Access ODBC driver .
2. В iSeries Navigator установлено соединение с DB2 и написаны требуемые select'ы.
3. В ODBC Data Source Administrator создан System DSN ,
в настройках которого помечен чекбокс Convert binary data (CCSID 65535) to text .
4. В Oracle создан dblink, использующий созданный System DSN .
Oracle видит DB2 и выполняет все запросы.

А теперь проблема:
Все CHARACTER поля, в свойствах которых стоит CCSID=65535 возвращаются в виде строк hex кодов,
поля для которых CCSID=1025 или пусто, возвращаются в виде нормального текста,
причем как латинского, так и русского.
Насколько я понимаю, за трансляцию данных как раз и должен отвечать упомянутый чекбокс,
но отмечен он или нет, никак не влияет на получаемые данные.

Возможен, конечно вариант с ручной конвертацией, но это кривоватое решение,
да и, надеюсь, должно быть стандартное решение.
...
Рейтинг: 0 / 0
Проблема с миграцией данных DB2 -> Oracle
    #34334381
mustaccio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй в явном виде конвертировать:

Код: plaintext
select normal_text, cast(hex_text as char( 20 ) ccsid  1025 ) as hex_text from ...

Тип данных оставь тот же, что и у исходного поля (т.е. в примере предполагается, что hex_text определено как char(20))
...
Рейтинг: 0 / 0
Проблема с миграцией данных DB2 -> Oracle
    #34335636
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valera SА теперь проблема:
Все CHARACTER поля, в свойствах которых стоит CCSID=65535 возвращаются в виде строк hex кодов,
поля для которых CCSID=1025 или пусто, возвращаются в виде нормального текста,
причем как латинского, так и русского.
Насколько я понимаю, за трансляцию данных как раз и должен отвечать упомянутый чекбокс,
но отмечен он или нет, никак не влияет на получаемые данные.

Возможен, конечно вариант с ручной конвертацией, но это кривоватое решение,
да и, надеюсь, должно быть стандартное решение.Добрый день.
А вы возьмите какую-нибудь программу, которая через odbc работает и запустите
Код: plaintext
select cast('АБВГД' AS CHAR( 10 ) CCSID  65535 ) FROM SYSIBM.SYSDUMMY1
при разных установках флажка.
В случае установленного translate ... вернется 'АБВГД', иначе - строка hex-кодов.
Именно так возвращает результат iSeries Run SQL Scripts.
Это пускалка sql и не только команд, доступная из iSeries Navigator, когда вы находитесь на объекте имя_базы (иконку искать в правой нижней четверти окна).
...
Рейтинг: 0 / 0
Проблема с миграцией данных DB2 -> Oracle
    #34336016
Valera S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы, mustaccio, Mark Barinstein.

Это все же ручная конвертация, к тому же в оракле конструкция
Код: plaintext
select cast('АБВГД' AS CHAR( 10 ) CCSID  65535 ) FROM dual;
не работает!

А решение проблемы найдено, во всяком случае для виндового ODBC.
ODBC д.б. настроен аналогично клиенту iSeries (Окно Run SQL Scripts , меню Connection / JDBC Setup... )
В окне конфигурации ODBC iSeries Access for Windows ODBC Setup
в закладке Translation устанавливается флажок Convert binary data (CCSID=65535) to text
Можно еще в закладке Server установить значение поля Naming convention
равным SQL naming convention (*SQL)

Ну и нужно, конечно, помнить, что ODBC настраивается на хосте, где установлен оракл и через который создан dblink на DB2,
а не на станции, где через ораклового клиента заливаются данные с DB2.
Я из-за этой забывчивости целый день потерял :(

После указанных настроек текстовые поля всех таблиц DB2 отображаются корректно, независимо от CCSID.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Проблема с миграцией данных DB2 -> Oracle
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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