多行 - 每行多个 CLOB SQL 加载器
Multiple Line - Multiple CLOB per line SQL Loader
我发现自己陷入了困境。
我正在解析包含多个 SOAP 调用条目的日志文件。每个 soap 调用都可以包含 4000 多个字符的有效负载,这使我无法使用 varchar2。所以我必须使用 CLOB)
我必须将这些有效负载加载到 oracle DB (12g) 上。
我成功地将日志拆分为单个字段,并在两个单个文件中获得了有效负载和调用的 header。
如何创建从 infile(包含其他字段的数据)加载并成对读取 CLOB 文件的 CTL 文件?
理想情况下:
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)
但是我不知道,也无法在 Internet 上的任何地方找到如何针对多个记录执行此操作以及如何使用两个 CLOBS 引用该记录。
值得一提的是,它是 JBOSS 日志,在 bash 环境中。
- 检查 12c 中 varchar 类型的大小。我以为增加到32K
https://oracle-base.com/articles/12c/extended-data-types-12cR1
- 查看示例 SQL Loader, CLOB, delimited fields
"I already create two separate files for payload and headers. How
should I specify that the two files are there for the same ID?"
参见此处示例:
https://oracle-base.com/articles/10g/load-lob-data-using-sql-loader
大致:
样本table
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)
我发现自己陷入了困境。
我正在解析包含多个 SOAP 调用条目的日志文件。每个 soap 调用都可以包含 4000 多个字符的有效负载,这使我无法使用 varchar2。所以我必须使用 CLOB)
我必须将这些有效负载加载到 oracle DB (12g) 上。 我成功地将日志拆分为单个字段,并在两个单个文件中获得了有效负载和调用的 header。
如何创建从 infile(包含其他字段的数据)加载并成对读取 CLOB 文件的 CTL 文件? 理想情况下:
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)
但是我不知道,也无法在 Internet 上的任何地方找到如何针对多个记录执行此操作以及如何使用两个 CLOBS 引用该记录。
值得一提的是,它是 JBOSS 日志,在 bash 环境中。
- 检查 12c 中 varchar 类型的大小。我以为增加到32K https://oracle-base.com/articles/12c/extended-data-types-12cR1
- 查看示例 SQL Loader, CLOB, delimited fields
"I already create two separate files for payload and headers. How should I specify that the two files are there for the same ID?"
参见此处示例: https://oracle-base.com/articles/10g/load-lob-data-using-sql-loader
大致:
样本table
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)