SQLLOAD

SqlLoader导入数据

  (2012-04-28 14:57:52)
标签: 

it

分类: Oracle

1、打开要导出为oracle的Excel,将Excel文件保存为test.txt文件(文件->另存为)

2、创建SQL*Loader输入数据所需要的文件,均保存到C:,用记事本编辑:

   控制文件:input.ctl,内容如下:

 load data         --1、控制文件标识

 infile 'test.txt'        --2、要输入的数据文件名为.txt,注意路径

 append intotable Table_Name  --3、向oracle表中追加记录

 fields terminatedby X'09'     --4、字段终止于X'09',是一个制表符(TAB)

 (Col1,Col2…)                  定义列对应顺序

 

  a、insert,为缺省方式,在数据装载开始时要求表为空

  b、append,在表中追加新记录

  c、replace,删除旧记录,替换成新装载的记录

  d、truncate,同上

3、在DOS窗口下使用SQL*Loader命令实现数据的输入

C:>sqlldr userid=system/managercontrol=input.ctl

默认日志文件名为:input.log

默认坏记录文件为:input.bad

4、ok,现在就可以查看数据是否导入了。


 

ORACLESQL Loader的详细语法

 SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。

       要使用SQL*Loader,必须编辑一个控制文件(.ctl),及一个数据文件(.dat)

   首先,我们认识一下SQL*LOADER

   在windows下,SQL*LOADER的命令为SQLLDR,在UNIX下一般为sqlldr/sqlload。  

   如执行:d:\oracle>sqlldr  

用法  SQLLOAD  关键字=  [,keyword=value,...]

例如:>sqlldr user/pass control=控制文件名 log=日志文件名

SQL*LOADER参数列表

参数名称

功能描述

Userid

数据库用户名及口令

Control

控制文件名称,描述数据加载的文件信息

Log

日志文件名称,用于记录数据加载过程的信息

Bad

坏信息文件名称,用于记录不符合要求的数据信息

Data

数据文件名称,记录要加载的原始数据

Discard

丢掉文件名称,记载了不满足条件而被过滤的数据

Discardmax

允许丢掉数据量,默认为全部丢掉

Skip

跳过几个逻辑记录,缺省为0

Load

要加载的记录数,默认为全部加载

Errors

允许出现的错误数,缺省为50

Direct

是否使用直接路径加载数据,默认为false

Readsize

缓冲区大小默认为1048576字节

 

1、首先创建空表

SQL>create table stu(stunonumber(5),name varchar(10),addr varchar(20));

数据文件格式分为自由格式和固定格式

固定格式数据文件(mydata.txt)

001 SHUI LIAOHE

002 LIU BEIJING

其控制文件分别如下

#Load.ctl

Load data

Infile mydata.txt

Into table stu

(stuno position(01:03) integer external,

Name position(05:08) varchar,

Addr position(10:16) varchar)

 

导入数据

>sqlldr test1/test1 control=’d:\load.ctl’log=’d:\load.log’

 

自由格式数据文件(mydata.txt)

003,”shuics”,”new york”

004,”liujianxin”,”Beijing”

005,”shuiym”,”Canada”

其控制文件如下

#load.ctl

Load data

Infile mydata.txt

Append|insert|replace|truncate

Into table stu

Fields terminated by ‘,’

Optionally enclosed by ‘”’

(stuno,name,addr)

 

导入数据

将Excel数据加载到oracle数据库

1、将excel文件另存为文本文件(制表符分隔)

2、创建控制文件如下

Load data

Infile ‘book.txt’

Append

Into table stu

Fields terminated by X’09’

(stuno,name,addr)

其中X’09’是一个制表符(TAB)


跳过某些列加载使用filler:

LOAD DATA 
INFILE * 
INTO TABLE DEPT 
REPLACE 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
( DEPTNO, 
FILLER_1 FILLER, // 下面的 "Something Not To Be Loaded" 将不会被装载 
DNAME, 
LOC 

BEGINDATA 
20,Something Not To Be Loaded,Accounting,"Virginia,USA"


跳过行加载使用skip

将数据导入多个表:  如:   

LOAD DATA  INFILE *  

REPLACE   INTO TABLE emp  

WHEN empno != ' '  

 ( empno POSITION(1:4) INTEGER EXTERNAL,  

ename POSITION(6:15) CHAR,  

deptno POSITION(17:18) CHAR,   

mgr POSITION(20:23) INTEGER EXTERNAL  )   

INTO TABLE proj  WHEN projno != ' '   

( projno POSITION(25:27) INTEGER EXTERNAL,  

empno POSITION(1:4) INTEGER EXTERNAL  )


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值