Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 Выгрузка файлов из BLOB-полей  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Здравствуйте всем!

DB2 WSE 9.7.0.8. В одной из таблиц базы в поле BLOB хранятся файлы. Скажите, могу ли я их выгрузить на диск? Как это сделать?

С уважением, Семен Попов
16 июн 15, 17:48    [17778011]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файлов из BLOB-полей  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Таблица FILE_STORAGE имеет поля FILE_IMPORT_DATETIME (timestamp), FILE_NAME(varchar(250)), FILE_CONTENT (blob). В эту таблицу приложение загружает файлы. Теперь задача обратная. Получить их физически на диске.
16 июн 15, 18:00    [17778093]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файлов из BLOB-полей  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Semen Popov,

Добрый день.

EXPORT to mypath/myfile.txt of del lobs to mypath modified by lobsinsepfiles select ...
16 июн 15, 18:02    [17778103]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файлов из BLOB-полей  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Mark Barinstein, спасибо. Получилось. Но в данном случае теряем имя файла, хотя в таблице оно есть в поле FILE_NAME. Нельзя ли при выгрузке каждому файлу давать имя из этого поля?
16 июн 15, 18:28    [17778230]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файлов из BLOB-полей  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Semen Popov
Но в данном случае теряем имя файла, хотя в таблице оно есть в поле FILE_NAME. Нельзя ли при выгрузке каждому файлу давать имя из этого поля?
Переименуйте файлы скриптом ОС с использованием файла myfile.txt
16 июн 15, 18:40    [17778269]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файлов из BLOB-полей  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Вы хотите сказать, что в файле myfile.txt будет приведен список наименований файлов и тогда в папке выгруженных файлов можно будет просто их переименовать в соответствии со списком myfile.txt?

У меня родился скрипт:
export to "blob_file.txt" of del lobs to "D:\_work\Temp" modified by lobsinsepfiles
messages "blob_file.msg" 
select FILE_STORAGE_CONTENT
from FILE_STORAGE
order by FILE_STORAGE_IMPORT_DATE_TIME
fetch first 10 rows only

После его выполнения в папке "D:\_work\Temp" создались 10 файлов с именами
blob_file.txt.001.lob
blob_file.txt.002.lob
blob_file.txt.003.lob
blob_file.txt.004.lob
blob_file.txt.005.lob
blob_file.txt.006.lob
blob_file.txt.007.lob
blob_file.txt.008.lob
blob_file.txt.009.lob
blob_file.txt.010.lob

И точно такой же список имен файлов я вижу в файле blob_file.txt:
"blob_file.txt.001.lob"
"blob_file.txt.002.lob"
"blob_file.txt.003.lob"
"blob_file.txt.004.lob"
"blob_file.txt.005.lob"
"blob_file.txt.006.lob"
"blob_file.txt.007.lob"
"blob_file.txt.008.lob"
"blob_file.txt.009.lob"
"blob_file.txt.010.lob"

Не понимаю, что на что переименовывать?
16 июн 15, 18:55    [17778315]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файлов из BLOB-полей  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Я могу выполнить отдельный экспорт
export to "blob_list_file.txt" 
OF DEL MODIFIED BY NOCHARDEL CODEPAGE=1251
messages "blob_list_file.msg" 
select FILE_NAME
from FILE_STORAGE
order by FILE_IMPORT_DATE_TIME
fetch first 10 rows only

И тогда я получу список наименований файлов, которые будут отсортированы в том же порядке, что и выгруженные lob-файлы. И тут на помощь придет скрипт bat/cmd, который в соответствии со списком просто переименует blob-файлы. Вы это имели в виду?
16 июн 15, 19:20    [17778386]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файлов из BLOB-полей  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Semen Popov,

Одним экспортом:

select FILE_NAME, FILE_STORAGE_CONTENT
from FILE_STORAGE

Получаете в каждой строке 2 поля через запятую:
имя вашего файла, присвоенное ему имя DB2

Для каждой считываемой строки получаете эти 2 имени и делаете переименование.
16 июн 15, 21:20    [17778807]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файлов из BLOB-полей  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
спасибо. То, что надо
16 июн 15, 22:25    [17779080]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка файлов из BLOB-полей  [new]
vitabios
Member

Откуда: Тула
Сообщений: 678
Semen Popov,

так и знал что Вас тут найду. Напомните, завтра вышлю Вам свой вариант скриптов выгрузки того чего Вы хотите из нашего ракетного комплекса!
17 июн 15, 23:01    [17785092]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить