powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Экспорт в IXF формат
16 сообщений из 16, страница 1 из 1
Экспорт в IXF формат
    #35889333
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо проэкспортить таблицу. Сначала делал
Код: plaintext
1.
2.
3.
export TO export_data/DOCUMENT.del OF DEL 
MESSAGES export_messages/_export.msg 
SELECT * FROM document WHERE datetime_deleted IS NOT NULL

Но полезли ошибки типа:
SQL3100W Column number "3" (identified as "NAME") in the output DEL format file is longer than 254 bytes.
Это у меня поле NAME varchar(256)
И такие:
SQL3132W The character data in column "COMMENTS" will be truncated to size "32700".
Это у меня clob(256000)
Я так понял - это у меня будут обрезаться данные (правильно?), что мне категорически не подходит.

Посмотрел я, что на форуме советуют формат IXF
Переделал
Код: plaintext
1.
2.
export TO export_data/DOCUMENT.ixf OF IXF 
MESSAGES export_messages/_export.msg 
SELECT * FROM document WHERE datetime_deleted IS NOT NULL
SQL3100W исчезло, а SQL3132W про блоб осталось.

Если я правильно понял, то надо экспортить блобы отдельно. Я в этом не сильно понимаю, посему прошу посмотреть на этот код на предмет правильности.
Код: plaintext
1.
2.
3.
4.
5.
export TO export_data/DOCUMENT.ixf OF IXF 
lobs to export_data/ 
lobfile document 
modified by lobsinfile 
MESSAGES export_messages/_export.msg 
SELECT * FROM document WHERE datetime_deleted IS NOT NULL
Код: plaintext
1.
2.
3.
 IMPORT FROM import_data/DOCUMENT.ixf OF IXF 
LOBS FROM export_data/ 
MESSAGES import_messages/_import.msg 
INSERT INTO DOCUMENT
Так же был бы весьма признателен за советы по поводу экспорта\импорта блобов
Например: почему могут быть несколько файлов для блобов; нормально ли они подхватываются импортом.

Потому как система планируется жить в автоматическом режиме и хотелось бы предусмотреть большинство ошибок
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35889722
mustaccio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, если EXPORT... MODIFIED BY LOBSINFILE, то и IMPORT... MODIFIED BY LOBSINFILE.

Если вы переносите данные только одной таблицы, то все нормально, по-моему (с учетом вышесказанного). Если таблиц несколько, т.е. несколько команд EXPORT подряд, то убедитесь, что имена файлов в LOBFILE разные, а то он будет перезаписываться каждый раз.

Что касается указания нескольких имен в LOBFILE, то они определяют не полное имя файла, а префикс в любом случае. EXPORT создаст столько файлов, сколько нужно, и соответствующие имена будут сохранены в IXF-файле, и IMPORT их прочитает.
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35890299
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mustaccioВо-первых, если EXPORT... MODIFIED BY LOBSINFILE, то и IMPORT... MODIFIED BY LOBSINFILE.Опции 'LOBS TO' (export) и 'LOBS FROM' (import) неявно включают modified by lobsinfile, поэтому последнюю опцию можно не включать.

mwolf,
lobfile есть смысл использовать, если вам не подходит умолчание для этой опции (имя файла с расширением, указанное в to команды export).
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35890556
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо ответившим, есть ещё вопросы по обработке ошибок.

Я попробовал проимпортировать мою таблицу во некоторую промежуточную таблицу. В логах гора сообщений типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SQL3187W  An error occurred while creating an index.  SQLCODE "-601" was returned.

SQL0601N  The name of the object to be created is identical to the existing name "GUS_ADM.IDX_DOCID_DEL_N" of type "INDEX".  SQLSTATE= 42710 

SQL3189N  The previous message refers to index "GUS_ADM.IDX_DOCID_DEL_N" with columns "+DOCUMENT_ID+DELETED_BY ".

SQL3187W  An error occurred while creating an index.  SQLCODE "-601" was returned.
Как я понимаю, это не страшно, потому как при загрузке в схему аналогичную исходной такое должно уйти. Вопрос в том, как отлавливать ошибки импорта и экспорта? Меня интересует ЛЮБАЯ потеря данных - обрезание данных, потеря строк итп. Есть ли рекомендации по отлову ошибок?
Я предполагал парсить меседж-файл на наличие слова SQLSTATE, но так я уже упустил варнинги на обрезание данных, но ещё более опасно будет потерять строки при импорте.

Есть ли способ гарантировано отловить, что какая-то строка не проимпортировалась?
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35890957
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё вопрос
Делаю экспорт двух таблиц. В обеих есть блобы. Сделал оба скрипта с "lobs to ".
Одна таблица - создался IXF и файл с блобами, вторая таблица - только IXF. Причём на вторую таблицу написало предупреждение об трункейте в месседж файл. Правда, во второй таблице данные в блобе не длинные, насколько я вижу.
Кто-то сталкивался?
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891326
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mwolfСпасибо ответившим, есть ещё вопросы по обработке ошибок.

Я попробовал проимпортировать мою таблицу во некоторую промежуточную таблицу. В логах гора сообщений типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SQL3187W  An error occurred while creating an index.  SQLCODE "-601" was returned.

SQL0601N  The name of the object to be created is identical to the existing name "GUS_ADM.IDX_DOCID_DEL_N" of type "INDEX".  SQLSTATE= 42710 

SQL3189N  The previous message refers to index "GUS_ADM.IDX_DOCID_DEL_N" with columns "+DOCUMENT_ID+DELETED_BY ".

SQL3187W  An error occurred while creating an index.  SQLCODE "-601" was returned.
Как я понимаю, это не страшно, потому как при загрузке в схему аналогичную исходной такое должно уйти. Схема, в которой надо создавать индексы, указывается в modified by indexschema=myschema команды import .mwolf
Вопрос в том, как отлавливать ошибки импорта и экспорта? Меня интересует ЛЮБАЯ потеря данных - обрезание данных, потеря строк итп. Есть ли рекомендации по отлову ошибок?
Я предполагал парсить меседж-файл на наличие слова SQLSTATE, но так я уже упустил варнинги на обрезание данных, но ещё более опасно будет потерять строки при импорте.

Есть ли способ гарантировано отловить, что какая-то строка не проимпортировалась?См. файл сообщений, указанный в кляузе messages команды import. Там указано.
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891330
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mwolfЕщё вопрос
Делаю экспорт двух таблиц. В обеих есть блобы. Сделал оба скрипта с "lobs to ".
Одна таблица - создался IXF и файл с блобами, вторая таблица - только IXF. Причём на вторую таблицу написало предупреждение об трункейте в месседж файл. Правда, во второй таблице данные в блобе не длинные, насколько я вижу.
Кто-то сталкивался?Покажите файл, указанный в messages.
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891361
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinПокажите файл, указанный в messages.

Это то, что выдавал экспорт
Код: plaintext
1.
2.
3.
4.
5.
6.
export TO export_data/ASSIGNMENT.ixf OF IXF LOBS TO export_data/ASSIGNMENT MESSAGES export_messages/_export.msg select * from ASSIGNMENT where datetime_deleted IS NOT NULL

Number of rows exported:  1103 

SQL3107W  There is at least one warning message in the message file.


Это файл _export.msg, в нём результаты обоих экспортов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL3104N  The Export utility is beginning to export data to file
"export_data/DOCUMENT.ixf".

SQL3105N  The Export utility has finished exporting "606" rows.

SQL3132W  The character data in column "COMMENTS" will be truncated to size
"32700".

SQL3104N  The Export utility is beginning to export data to file
"export_data/ASSIGNMENT.ixf".

SQL3105N  The Export utility has finished exporting "1103" rows.
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891385
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinСм. файл сообщений, указанный в кляузе messages команды import. Там указано.
Туда сбрасываются все сообщения операции - диагносностика, предупреждения. А есть ли способ программно отловить именно ошибки?

Я пробовал разбирать диагностические сообщения для поиска количества инсертед\режектед строк, но это ИМХО самодеятельность, и должны быть какие-то более цивилизованные способы. LOAD отвергнутые строки складывает в отдельный файл, но в IMPORTе я такого не нашёл
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891413
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mwolf,

Такое сообщение выдается , когда не указывают ни LOBS TO, ни modified by lobsinfile.
Вы привели команду для ASSIGNMENT. Она выгрузилась нормально.
А где для DOCUMENT? Такое впечатление, что вы не поставили эти кляузы для этой таблицы...
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891433
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mwolfЯ пробовал разбирать диагностические сообщения для поиска количества инсертед\режектед строк, но это ИМХО самодеятельность, и должны быть какие-то более цивилизованные способы. LOAD отвергнутые строки складывает в отдельный файл, но в IMPORTе я такого не нашёл
IMPORT command using the ADMIN_CMD procedure .
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891672
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinsteinmwolf,

Такое сообщение выдается , когда не указывают ни LOBS TO, ни modified by lobsinfile.
Вы привели команду для ASSIGNMENT. Она выгрузилась нормально.
А где для DOCUMENT? Такое впечатление, что вы не поставили эти кляузы для этой таблицы...

Нет, это всё таки к ASSIGNMENT
Только что выполнил экспорт ещё раз:
export TO export_data/ASSIGNMENT.ixf OF IXF LOBS TO export_data/ASSIGNMENT MESSAGES export_messages/_export.msg select * from ASSIGNMENT where datetime_deleted IS NOT NULL

Number of rows exported: 1095

SQL3107W There is at least one warning message in the message file.

в месседж-файле добавились строки
SQL3132W The character data in column "COMMENTS" will be truncated to size
"32700".

SQL3104N The Export utility is beginning to export data to file
"export_data/ASSIGNMENT.ixf".

SQL3105N The Export utility has finished exporting "1095" rows.

Количество строк немного изменилось с прошлого раза, это нормально, в базе работа идёт
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891680
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark BarinsteinmwolfЯ пробовал разбирать диагностические сообщения для поиска количества инсертед\режектед строк, но это ИМХО самодеятельность, и должны быть какие-то более цивилизованные способы. LOAD отвергнутые строки складывает в отдельный файл, но в IMPORTе я такого не нашёл
IMPORT command using the ADMIN_CMD procedure .

У меня восьмёрка, к сожалению. Тут таким образом только экспорт возможен.
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891721
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин!
Теперь и Документы без блобов вытягиваются!

команда
Код: plaintext
1.
2.
3.
4.
db2 -v "export TO export_data/DOCUMENT.ixf OF IXF 
LOBS TO export_data/ 
lobfile DOCUMENT 
MESSAGES export_messages/_export.msg 
select * from DOCUMENT where datetime_deleted IS NOT NULL"

меседж-файл
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SQL3132W  The character data in column "COMMENTS" will be truncated to size
"32700".

SQL3104N  The Export utility is beginning to export data to file
"export_data/DOCUMENT.ixf".

SQL3105N  The Export utility has finished exporting "601" rows.
что за фигня!!!
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891741
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажись понял

Я пробовал, как вы и советовали, сокращённый вариант команды
Код: plaintext
1.
2.
3.
export TO export_data/ASSIGNMENT.ixf OF IXF 
LOBS TO export_data/ASSIGNMENT 
MESSAGES export_messages/_export.msg 
select * from ASSIGNMENT where datetime_deleted IS NOT NULL

А вчера полный
Код: plaintext
1.
2.
3.
4.
5.
export TO export_data/ASSIGNMENT.ixf OF IXF 
LOBS TO export_data/ 
lobfile ASSIGNMENT 
modified by lobsinfile 
MESSAGES export_messages/_export.msg 
select * from ASSIGNMENT where datetime_deleted IS NOT NULL

Полный работает, сокращённый - нет
По всей видимости в восьмёрке надо писать по другому
:-(
...
Рейтинг: 0 / 0
Экспорт в IXF формат
    #35891762
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mwolfКажись понял

Я пробовал, как вы и советовали, сокращённый вариант команды
Код: plaintext
1.
2.
3.
export TO export_data/ASSIGNMENT.ixf OF IXF 
LOBS TO export_data/ASSIGNMENT 
MESSAGES export_messages/_export.msg 
select * from ASSIGNMENT where datetime_deleted IS NOT NULL

А вчера полный
Код: plaintext
1.
2.
3.
4.
5.
export TO export_data/ASSIGNMENT.ixf OF IXF 
LOBS TO export_data/ 
lobfile ASSIGNMENT 
modified by lobsinfile 
MESSAGES export_messages/_export.msg 
select * from ASSIGNMENT where datetime_deleted IS NOT NULL

Полный работает, сокращённый - нет
По всей видимости в восьмёрке надо писать по другому
:-(Да, в v8 lobs from и lobs to не включают неявно modified by lobsinfile, т.е. последнюю опцию надо указывать явно.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Экспорт в IXF формат
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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