【Oracle】SQLLOADER

SQLLOADER实验:

建立一个实验用目录:

mkdir -p /home/oracle/sqlldr   --在ORACLE用户下执行

在数据库HR用户下创建一个表:

create table dept(deptno number(5),dname varchar2(15),loc varchar2(15));

1)创建数据文件

vi test.dat

10,"A","CHINA"

11,"B","USA"

12,"C","RUSSIA"

13,"D","INDIA"

14,"E","KOREA"

15,"F","JAPAN"

16,"G","FRANCE"

17,"H","ENGLISH"

2)创建控制文件

vi test.ctl

load data

infile 'test.dat' --指定加载的数据文件,可以是单独的文件名-相对路径(控制文件和加载文件在一起时),也可以带有目录的文件名-绝对路径 控制文件和加载的数据文件不在一个目录下

into table dept  

fields terminated by ',' optionally enclosed by '"'

(deptno,dname,loc)

3)加载数据

sqlldr hr/hr control=test.ctl log=test.log

如果数据文件中,有列头,那么进行数据加载时,可能会出错,生成一个bad文件。

1)创建数据文件

vi test01.dat

deptno,dname,loc
10,"A","CHINA"
11,"B","USA"
12,"C","RUSSIA"
13,"D","INDIA"
14,"E","KOREA"
15,"F","JAPAN"
16,"G","FRANCE"
17,"H","ENGLISH"

2)创建控制文件

vi test01.ctl

load data

infile 'test01.dat'

into table dept1

fields terminated by ',' optionally enclosed by '"'

(deptno,dname,loc)

3)数据加载

sqlldr hr/hr control=test01.ctl log=test01.log

相关参数补充:

  1. insert --为缺省方式,在数据装载开始时要求表为空
  2. append --在表中追加新记录
  3. replace --删除旧记录(用 delete from table 语句),替换成新装载的记录
  4. truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录

when deptno <> 15 – 当deptno不为15的时候 可以插入
例子
into table dept when deptno <> 10

SQLLODER_EXPRESS

在sqlldr目录下创建两个以.dat为后缀名的文本文档

vi eemp.dat
1,a,100
2,b,200
3,c,300

vi eemp1.dat
1:a:100
2:b:200
3:c:300

在hr用户下创建两张表:
create table eemp(id number,name varchar2(10),salary number);

create table eemp1(id number,name varchar2(10),salary number);

在sqlldr目录下执行两个命令开始导入
sqlldr hr/hr TABLE=eemp;
sqlldr hr/hr TABLE=eemp1;

需要注意的是
1)命令行中的表名大小写一定要和操作系统上对应的文件名大小写一样,而且文件扩展名必须是.dat
2)数据文件内的数据分割必须是以逗号做分隔符。
3)表列必须是标量数据类型(字符,数字或日期时间)。

打开EM EXPRESS

1 首先启动监听
lsnrctl start

然后查看http和https端口
select dbms_xdb_config.gethttpsport() from dual;
select dbms_xdb_config.gethttpport() from dual;

设置em端口
exec dbms_xdb_config.setHTTPSPort(8089);
exec dbms_xdb_config.setHTTPPort(8090);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值