linux导入oracle脚本文件怎么打开文件,linux oracle利用 SQL*Loader数据导入文件数据...

一:SQL*Loader简介

67e5380e2a55d20d2d04461d6a7e880b.png

SQL*Loader:使用sqlldr将非oracle数据库数据导入进oracle数据库。

SQLLAR基本语法:

SQLLDR keyword=value[ ,keword=value]

例如: $sqlldr scott/oracle control=emp.ctl data=emp.data bad=emp.bad log=emp.log

控制文件:控制文件由三个部分组成,

1,全局选项:行,跳过的记录数等

infile子句制定的输入数据

数据特征说明: comment:--注释

如:

--this is a ……     //--表示注释

LOAD DATA

infile *          //表明数据在本文件中以begindata开头的区域内

APPEND      //append,追加导入(除此之外还有insert、repace/truncate)

INTO TABLE SCOTT.JACK    //数据导入scott.jack

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'   //fields terminated by','        文件是使用,来做分隔符,optionally enclosed by '"' 文件试试用"来作为定界符

FILLER_1 FILLER,       //制定某一列不会被装载

--DEPTNO position(1:2),DNAME position(*:16),    //指定列的位置,deptno为1-2咧的数据,都那么为0-16列数据

seqno  rrecnum     //载入每行的行号

SKIP n     //制定导入时可以跳过多少行数据

(

ID INTEGER EXTERNAL,

AGE INTEGER EXTERNAL

)

--Begindata

--1,2

--3,4

--1,b

输入文件:被控制文件制定数据格式的数据行集

坏文件:bad=jack.bad 不满足SQL*loader约束活不满组数据库数据插入约束的文件。

丢弃文件:不满足用户设定的规范而被丢弃的文件

日志文件:全程跟踪数据导入过程的文件。

二:高级选项:conventional path load 与 direct path load

conventional path load

通过常规通道方式上传

命令语法为:

$ sqlldr scott/oracle control=jack.ctl log=jack.log rows=1000 bindsize=8192000

其中:rows: 每次提交的记录数

Bindsize:每次提交的记录缓冲区大小

Readsize:与bindsize配合使用,其中较小者会自动调整到较大者

Direct-path load:

通过直通式方式上载,可以跳过数据库的相关逻辑,不进行SQL解析,而直接将数据文件直接导入到数据库中。

命令语法为:

$sqlldr scott/oracle control=jack.ctl log=jack.log direct=true

附:如果想导入excel文件的话,可以先将excel文件保存为csv格式,然后再导入(注意:csv格式里面所有的字符格式都是“字符型”char)

三、实例:

使用SQL*Loader导数据

首先在数据库中创建一个目录对象,并且该对象与操作系统中物理文件夹对应,并给文件夹授权。

!host mkdir /u01/expdp/jack

Create directory "jack" as '/u01/expdp/jack'

Grant read,write on directory "jack" to "plubic"

做完之后可以查看目录对象:

Select * from dba_directories;

在对应的文件夹中创建一个数据文件

!Host vim /u01/expdp/jack/jack.txt

1,2

1,3

2,b

在数据库中创建一张表,并且注意表的

Create table jack (id number(12),age number(12))

4、利用EM生成控制文件,也可以自己手工写

--this is a ……

LOAD DATA

Infile *

APPEND

INTO TABLE SCOTT.JACK

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'

(

ID INTEGER EXTERNAL,

AGE INTEGER EXTERNAL

)

利用SQL*Loader添加数据

Sqlldr scott/oracle control=jack.ctl logfile=jack.log

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值