目前在一家电信公司就职报表开发工程师,2010年开始从事运维方面的工作,期间从事过业务维护工程师、自动化运维工程师,2016年转为报表开发工程师。有耐心,抗压力、爱折腾,喜欢研究自动化工具。
分类: Oracle
2016-02-17 14:40:19
(1) 从Oracle服务器上拷贝相应的sqlldr执行程序。
2、data.test 数据文件数据:
12,xvbg
table 表结构:
data.ctl 内容:
load data
所有字段使用空格分隔,其中有两个字段使用双引号包含(其中可能有空格),数据样本、域分隔如下:
看起来很复杂,其实通过使用OPTIONALLY ENCLOSED BY就可以轻松实现。
--1,创建临时表
--2,创建控制文件
1> scp /usr/local/oracle/sqlldr
2> mkdir -p /usr/local/oracle/rdbms/mesg cd /usr/local/oracle/rdbms/mesg/ scp ./ulus.msb
3> 测试
$> sqlldr
打印帮助信息!就成功啦!
常见的分隔符在控制文件中
1、X'09' 表示 tab
13,mggjf
14,oijjg
35,zxcs
34,svvv
create table test( id number(10),name char(20))
infile data.test
truncate into table test
fields terminated by ','
(id,name)
3、
60.23.202.124 26.120.3.61 - - 1 [09/Oct/2011:09:00:01 +0800] "POST /BocnetClient/PAYSNo&SignDynPayments.do HTTP/1.1" 200 23089 ""
------------- ----------- - - - ---------------------------- ------------------------------------------------------- --- ----- --------------------------------
另外,由于该字段较长,需要在控制文件中说明字段长度(超过255),否则报错。
drop table tmp_webaccess;
create table tmp_webaccess
(
col1 varchar2(20),
col2 varchar2(20),
col3 varchar2(20),
col4 varchar2(20),
col5 varchar2(20),
col6 date,
col8 varchar2(200),
col9 varchar2(100),
col10 varchar2(100),
col11 varchar2(200)
);
more webaccess.ctl
LOAD DATA
infile "webaccess.txt"
Append INTO TABLE tmp_webaccess
FIELDS TERMINATED BY ' '
OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
(
col1,
col2,
col3,
col4,
col5,
col6 "to_date(replace(:col6,'['),'dd/mm/yyyy:hh24:mi:ss')",
col7 filler,
col8 char(4000),
col9,
col10,
col11 char(4000)
)