码迷,mamicode.com
首页 > 数据库 > 详细

Oracle sqlloader

时间:2019-01-18 15:02:05      阅读:369      评论:0      收藏:0      [点我收藏+]

标签:技术   ade   name   osi   平面   txt   bad   ace   转换   

一、SQL*LOADER简介

SQL*Loader是oracle提供的可以从多种平面文件中向数据库中加载数据的工具,使用sqlldr工具可以在很短的时间内向数据库中加载大量的数据,像把制作好的excel表格导入数据库,可以说非常方便。

 

技术分享图片

 

二、SQL*LOADER使用

1、导入单列数据

导入单列数据不需要写分隔符

create table DF_001_20190118
(
  ID VARCHAR2(30)
)

控制文件配置

cat o_input.ctl
load data
infile ‘sql4.txt‘
append into table dbadmin.df_004_20190118
(
id position(1:50)
)

2、导入多行数据

LOAD DATA
INFILE *INTO TABLE BONUSFIELDS
TERMINATED BY ","
(ENAME,JOB,SAL)
BEGINDATA
SMITH,CLEAK,3904
ALLEN,SALESMAN,
2891WARD,SALESMAN,
3128KING,PRESIDENT,252

 

三、SQL*LOADER控制文件参数

Load DATA
#表示加载数据。
INFILE ‘C:\sqlldr\olap.date_time_15_min.txt‘
#INFILE指定数据文件,如果是INFILE *,表示加载的数据保存在控制文件中。
INTO TABLE test.date_time_15_min
#数据加载到的具体表名。
APPEND|REPLACE|TRUNCATE
#如果没有这行,默认是INSERT操作,要求表必须为空,TRUNCATE操作非传统意义上的TRUNCATE TABLE DATE_TIME_15_MIN,而是执行TRUNCATE TABLE DATE_TIME_15_MIN REUSE STORAGE操作,这点需要注意。
FIELDS TERMINATED BY ‘,‘ OPTIONALLY ENCLOSED BY ‘"‘
#数据的存储是以,符号作为分割,"符号引起来的表示字符串,这是定界加载,这是最传统的方式,另外还可以定长加载,这里我们不讨论。
TRAILING NULLCOLS
#如果输入的数据不存在某列的数据,SQLLOADER就会为该列绑定一个NULL值。
(APPLIEDTIME "to_date(:appliedtime,‘yyyy-mm-dd hh24:mi:ss‘)",
#以(符号开始表示表的字段,由于是日期字段,所以需要使用函数进行转换,函数必须用双引号引起来,:appliedtime是跟前面的APPLIEDTIME相对应。
applieddate "to_date(:applieddate,‘yyyy-mm-dd hh24:mi:ss‘)",
psvcode,
#如果字段没有指定存储类型,默认为CHAR(255),超过长度会收到Fileld in data file exceeds maximum length的报错,只需要根据长度指定类型,例如,CHAR(1000)。
hzpsvcode,
pointindex,
appliedhour "to_date(:appliedhour,‘yyyy-mm-dd hh24:mi:ss‘)"
)
BEGINDATA
#下面是加载的数据,对应上面的INFILE *设置。

 

Oracle sqlloader

标签:技术   ade   name   osi   平面   txt   bad   ace   转换   

原文地址:https://www.cnblogs.com/xibuhaohao/p/10287475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!