2012-06-12 2 views
2

У меня есть файл, подобный этому '|'Добавление столбца clob в базу данных Oracle с помощью sqlloader

some varchar text | some varchar text | some varchar text | very long text >3500 

Мне нужно загрузить этот файл, используя sqlloader. схема таблицы является

Name          Null? Type 
----------------------------------------- -------- ---------------------------- 
NAME         NOT NULL VARCHAR2(100) 
TIME         NOT NULL VARCHAR2(60) 
EXCEPTION        NOT NULL VARCHAR2(300) 
DETAILS           CLOB 

Содержание контрольного файла является

LOAD DATA 
INFILE * 
REPLACE 
INTO TABLE BX_TWISTER_ERRORS 
fields terminated by '|' 
(
    NAME, 
    TIME, 
    EXCEPTION, 
    DETAILS 
) 

Я получаю следующее сообщение об ошибке:

Variable length field exceeds maximum length.

Для каждого поля деталей.

Может ли кто-нибудь дать какие-либо предложения или решения по загрузке этого рода файла с разделителями с помощью загрузчика SQL?

+1

Смотрите здесь: http://docs.oracle.com/cd/B10500_01/server.920/a96652/ch07.htm#1006805 –

ответ

3

Просто добавьте CHAR (10000) желаемый размер в свой файл управления.

LOAD DATA 
INFILE * 
REPLACE 
INTO TABLE BX_TWISTER_ERRORS 
fields terminated by '|' 
(
    NAME, 
    TIME, 
    EXCEPTION, 
    DETAILS CHAR(10000) 
) 
+0

FYI - внутренние буферы символьные SQLLDR являются только 255. Если вы читаете в поля данных больше, чем вы получите ошибку. У меня есть привычка всегда создавать управляющий файл с CHAR (X), который соответствует таблице. На самом деле у меня есть функция, которая будет генерировать файл управления скелетом из таблицы, которая устанавливает это для удаления некоторых утомительных работ. Я разместил его раньше: http://stackoverflow.com/a/37947714/2543416 –

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