如何使用 SQL Loader 从辅助文件映射 CLOB 数据

How to map CLOB data from secondary file with SQL Loader

我正在尝试使用 SQL 加载程序通过 CLOB 将客户的数据加载到 table。 由于数据量大,客户更愿意提供两个文件:主要文件 - 包含 "main" table 数据,次要文件包含 CLOB。

我正在寻找正确的输入文件布局和正确的加载语法。 辅助文件是否应包含 ID,以及 SQL 加载程序如何匹配两个文件中的记录?

我们的情况大致是这样(假设 CLOB 由字符串 '< lobend >' 分隔):

table empemp_id, nameresume (CLOB)。简历是可选的,有时它会为空。

主文件

123, Jane
567, Mary
896, Bob

二级文件

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

假设您的主文件名为 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