2017-02-22 1 views
0

Я пытаюсь загрузить данные клиента в таблицу с помощью CLOB с помощью SQL Loader. Из-за томов данных клиент предпочитает предоставлять два файла: первичный - с «основными» данными таблицы и вторичными, с CLOB.Как сопоставить данные CLOB из вторичного файла с загрузчиком SQL

Я ищу правильную компоновку входных файлов и правильный синтаксис загрузки. Должен ли вторичный файл содержать идентификатор и как именно SQL Loader сопоставляет записи в двух файлах?

Ситуация, которую мы имеем приблизительно это (при условии, что CLOBs разграничены строки '< lobend>'):

стол эми с колоннами emp_id, имя и резюме (CLOB) , Возобновление является необязательным, и иногда оно равно null.

первичный файл

123, Jane 
567, Mary 
896, Bob 

вторичный файл

Resume of Jane<lobend> 
<lobend> 
Resume of Bob<lobend> 

ответ

0

Предположим, что ваш основной файл называется primary.dat и ваш вторичный файл называется secondary.dat. Создайте файл управления следующим образом:

load data 
infile 'primary.dat' 
into table persons 
fields terminated by ',' 
( emp_id char(3) 
    ,ename char(10) 
    ,resume lobfile(constant 'secondary.dat') terminated by "<lobend>\n" 
) 

Затем загрузите его:

sqlldr userid=scott/tiger control=loadlob.ctl 

SQL*Loader: Release 12.1.0.2.0 - Production on Wed Feb 22 08:42:13 2017 

Copyright (c) 1982, 2015, Oracle and/or its affiliates. All rights reserved. 

Path used:  Conventional 
Commit point reached - logical record count 3 

Table PERSONS: 
    3 Rows successfully loaded. 

Check the log file: 
    loadlob.log 
for more information about the load. 

Проверьте данные:

EMP_ID ENAME  RESUME 
---------- ---------- ------------------------------ 
     123 Jane  Resume of Jane 
     456 Mary 
     789 Bob  Resume of Bob