2015-01-26 3 views
0

Я пытаюсь вставить несколько изображений, используя sqlldr. Все работает нормально, без каких-либо проблем, но после вставки, когда я проверяю размер изображения, это не фактический размер, а меньше.Sqlldr не вставляет полный файл

Я использую таблицу с двумя столбцами, чтобы проверить работу sqlldr. Таблица содержит один целочисленный столбец и один кадр (для изображений).

файл управления:

load data infile 'path of text file' 
append into table TEST 
fields terminated by "," 
( 
    NAME,IMAGE 
) 

Файл данных:

1,path of image 

запрос я использую, чтобы проверить длину файла:

select name,length(image),dbms_lob.getlength(image) 
from test; 

Размер большинства изображений 900 до 1000 КБ. Размер файла после вставки составляет 29kb. Может кто-то, пожалуйста, помогите мне в этом вопросе. Если шаги, которые я выполняю, неверны, то sqlldr не должен работать вообще, кроме его работы. Я не могу понять, где я ошибаюсь.

+0

Какова ваша структура таблицы, что делает ваш файл управление выглядеть, что говорит журнал? Как вы проверяете размер, в Oracle и для исходного файла? –

+0

Пожалуйста, добавьте эту информацию в вопрос с помощью кнопки редактирования, а не как комментарии ... со всем файлом управления, а также пример с размером файла и размером отчета после вставки, поэтому эти два можно сравнить. –

ответ

1

Вы должны сказать sqlldr, что второй столбец на самом деле имя файла не фактические данные:

load data infile 'path of text file' 
append into table TEST 
fields terminated by "," 
(
    name, 
    input_file FILLER, 
    image LOBFILE(input_file) TERMINATED BY EOF 
) 

Примечание линия input_file FILLER,, которая определяет заполнитель для второго столбца в входном файле. Выражение image LOBFILE(input_file) затем помещает содержимое файла в столбец image

Для получения более подробной информации обратитесь к разделу SQL*Loader manual, особенно the example about loading LOB files

+0

Отлично ... это работает .... Спасибо большое :) – user4215256

Смежные вопросы