Multiple Line - несколько CLOB в строке SQL Loader - PullRequest
0 голосов
/ 20 сентября 2018

Я нахожусь в затруднительном положении.

Я анализирую лог-файл нескольких записей вызовов SOAP.Каждый вызов мыла может содержать полезную нагрузку более 4000 символов, что не позволяет мне использовать varchar2.Поэтому я должен использовать CLOB)

Я должен загрузить эти полезные данные в оракул DB (12g).Я успешно разделил журнал на отдельные поля и получил полезные данные и заголовок вызовов в двух отдельных файлах.

Как мне создать файл CTL, который загружается из infile (который содержит данные для других полей) ичитает файлы CLOB попарно?В идеале:

LOAD DATA
INFILE 'load.ldr'
BADFILE 'load.bad'
APPEND
INTO TABLE ops_payload_tracker
FIELDS TERMINATED BY '§'
TRAILING NULLCOLS
( id,
direction,
http_info,
payload CLOB(),
header CLOB(),
host_name)

но тогда я не знаю, и нигде не могу найти в Интернете, как сделать это для более чем одной записи и как ссылаться на эту одну запись с двумя CLOBS.

Стоит отметить, что это журналы JBOSS в среде bash.

1 Ответ

0 голосов
/ 21 сентября 2018
  1. проверить размер типа varchar в 12c.Я думал, что это было увеличено до 32K https://oracle -base.com / article / 12c / extended-data-types-12cR1
  2. посмотрите этот образец SQL Loader, CLOB, поля с разделителями
  3. «Я уже создал два отдельных файла для полезной нагрузки и заголовков. Как мне указать, что эти два файла существуют для одного и того же идентификатора?»

см. Пример здесь: https://oracle -base.com / Articles / 10g / load-lob-data-using-sql-loader

примерно:

таблица образцов

1,one,01-JAN-2006,1_clob_header.txt,2_clob_details.txt
2,two,02-JAN-2006,2_clob_heder.txt,2_clob_details.txt

ctl

LOAD DATA 
INFILE 'lob_test_data.txt'
   INTO TABLE lob_tab
   FIELDS TERMINATED BY ','
   (number_content    CHAR(10),
    varchar2_content  CHAR(100),
    date_content      DATE "DD-MON-YYYY" ":date_content",
    clob_filename     FILLER CHAR(100),
    clob_content      LOBFILE(clob_filename) TERMINATED BY EOF,
    blob_filename     FILLER CHAR(100),
    blob_content      LOBFILE(blob_filename) TERMINATED BY EOF)
...