Вопрос про SQLLoader и BLOB.

Riddler
Дата: 03.08.2005 16:27:35
Поведайте кто-нить пжалста, можно ли через текстовые файлы протаскивать БЛОБы в таблицу на Oracle.

Ситуация у меня такая, мне нужно графические данные с MSSQL Server перетащить на Oracle в минимальные сроки, причем в таблица более 3 млн. записей.

Выгрузил в текстовый файл DTS пакетом.

Предпринял попытку загрузить SQLLoader-ом, получил вот такой лог:


SQL*Loader: Release 10.1.0.2.0 - Production on Ср Авг 3 11:24:58 2005

Copyright (c) 1982, 2004, Oracle. All rights reserved.

Управляющий файл: c:\projects\export_import\persimagesmigr.ctl
Файл данных: C:\Projects\data\persimages_Text.dat
Файл плохих записей: c:\projects\export_import\badrecords.bad
Файл удаленных записей: c:\projects\export_import\discardfile.dis
(Разрешить удалять все записи)

Количество записей для загрузки: ALL
Количество записей для пропуска: 0
Допускается ошибок: 50
Массив привязки:3200000 строк, макс. из 256000 байт
Продолжение: ничего не задано
Использован маршрут: Условный

Таблица MS_SOCIAL.PERSONALIMAGES_TB, загружен из каждой логической записи.
Режим вставки действует для этой таблицы: INSERT
Действует опция TRAILING NULLCOLS

Имя столбца Позиция Дл. Огр. Вкл Тип данных
------------------------------ ---------- ----- ---- ---- ---------------------
SOCIALID FIRST * , O(") CHARACTER
PHOTO NEXT * , O(") CHARACTER
SIGNATURE NEXT * , O(") CHARACTER
CORRECTED NEXT * , O(") CHARACTER

значение, использующееся для параметра ROWS, изменилось с 3200000 на 248
Запись 1: Забракована - Ошибка в таблице MS_SOCIAL.PERSONALIMAGES_TB, столбце PHOTO.
Поле в файле данных превышает максимальный размер

.............................
.............................


Запись 51: Забракована - Ошибка в таблице MS_SOCIAL.PERSONALIMAGES_TB, столбце PHOTO.
Поле в файле данных превышает максимальный размер

ПРЕВЫШЕНО МАКСИМАЛЬНОЕ КОЛИЧЕСТВО ОШИБОК - В приведенной выше статистике отражен частичный прогон.

Таблица MS_SOCIAL.PERSONALIMAGES_TB:
0 Строки успешно загружено.
51 Строки не загружены из-за ошибки в данных.
0 Строки не загружены из-за сбоев во всех фразах WHEN.
0 Строки не загружены из-за того, что все поля были пусты.


Для массива привязки отведено: 255936 байт(248 строк)
Байтов буфера чтения: 1048576

Всего пропущено логических записей: 0
Всего прочитано логических записей: 51
Всего забраковано логических записей: 51
Всего удалено логических записей: 0

Прогон начался в Ср Авг 03 11:24:58 2005
Прогон кончился в Ср Авг 03 11:24:59 2005

Общее время: 00:00:00.81
Процессорное время: 00:00:00.10



Подскажите что-нить полезное, а?
Riddler
Дата: 03.08.2005 17:19:34
я поискал здесь похожие топики, но ситуации там отличные от моей.

может не париться и удовлетвориться перекачкой с сервера mssql на сервер oracle DTS пакетом?
Только очч-ень это долго по времени получается.
Kovalchuk Vitaly V
Дата: 03.08.2005 17:32:41
Вот пример ctl файла для загрузки данных в blob поле.
LOAD DATA
INFILE 'test.dat'
INTO TABLE test_blob
REPLACE
FIELDS TERMINATED BY ','
(id, fname filler char(60), data lobfile(fname) TERMINATED BY EOF )
Вот test.dat
1,test.jpg 
Ну и понятно рядом дожен лежать файл test.jpg
Riddler
Дата: 04.08.2005 15:16:20
Kovalchuk Vitaly V
Вот пример ctl файла для загрузки данных в blob поле.
LOAD DATA
INFILE 'test.dat'
INTO TABLE test_blob
REPLACE
FIELDS TERMINATED BY ','
(id, fname filler char(60), data lobfile(fname) TERMINATED BY EOF )
Вот test.dat
1,test.jpg 
Ну и понятно рядом дожен лежать файл test.jpg


я не понял, мне нужно вгружать многие тысячи графических изображений, как менять переменную fname?
Или мне нужно писать на каждый BLOB управляющий файл?