oracle11g数据读取缓慢,Oracle11g数据装载的几种方式

数据的装载: SQL*LOADER 外部表 导入/导出 SQL*LOADER: SQL*LOADER是一个Oracle工具,能够将数据从外部数据文件装载到数据库中

数据的装载:

d1225b06dbb009309e9b1e118e23f936.png

SQL*LOADER:

SQL*LOADER是一个Oracle工具,,能够将数据从外部数据文件装载到数据库中。

运行SQL*LOADER的命令是sqlldr。

Sqlldr的两种使用方式:

1. 只使用一个控制文件,在这个控制文件中包含数据

2. 使用一个控制文件(作为模板) 和一个数据文件

一般采用第二种方式,数据文件可以是 CSV 文件、txt文件或者以其他分割符分隔的。

说明:操作类型 可用以下中的一值:

1) insert --为缺省方式,在数据装载开始时要求表为空

2) append --在表中追加新记录

3) replace --删除旧记录(用 delete from table 语句),替换成新装载的记录

4) truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录

通过spool来制作数据文件:--可以查询帮助文档的示例代码

SQL> spool /u01/app/oracle/test_data_loader/student.txt--开启spool导出数据文件

SQL> select id ||',' || name ||',' || age ||',' || inner_date from student;--导出数据

ID||','||NAME||','||AGE||','||INNER_DATE

--------------------------------------------------------------------------------

1,zhangsan,21,23-JAN-15

2,lisi,22,23-JAN-15

3,wangwu,23,23-JAN-15

SQL> spool off;--关闭

SQL> exit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

[oracle@localhost test_data_loader]$ cat student.txt--可以查看到导出的数据记录

SQL> select id ||',' || name ||',' || age ||',' || inner_date from student;

ID||','||NAME||','||AGE||','||INNER_DATE

--------------------------------------------------------------------------------

1,zhangsan,21,23-JAN-15

2,lisi,22,23-JAN-15

3,wangwu,23,23-JAN-15

SQL> spool off;

写配置文件:

[oracle@localhost test_data_loader]$ vi student.ctl

[oracle@localhost test_data_loader]$ cat student.ctl

options(skip=4)--表示前面的四行

load data--导入数据

infile 'student.txt'--通过该文件导入数据

into table student--导入的表

insert--执行的是插入操作

fields terminated by ','--记录中的分割符

(

id char,--注意虽然表中是number类型,但是要写char类型

name char,

age char,

inner_date date nullif (inner_date = "null"))

[oracle@localhost test_data_loader]$

既然是insert操作所以:

SQL> truncate table student;--清空表,由于执行的是插入操作

Table truncated.

SQL> select * from student;

no rows selected

执行sqlldr操作:

[oracle@localhost test_data_loader]$ sqlldr hr/hr control= student.ctl log = student.log

SQL*Loader: Release 11.2.0.1.0 - Production on Fri Jan 23 23:11:08 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

Commit point reached - logical record count 4

[oracle@localhost test_data_loader]$ cat student.log

SQL*Loader: Release 11.2.0.1.0 - Production on Fri Jan 23 23:11:08 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

Control File: student.ctl

Data File: student.txt

Bad File: student.bad

Discard File: none specified

(Allow all discards)

Number to load: ALL

Number to skip: 4

Errors allowed: 50

Bind array: 64 rows, maximum of 256000 bytes

Continuation: none specified

Path used: Conventional

Table STUDENT, loaded from every logical record.

Insert option in effect for this table: INSERT

Column Name Position Len Term Encl Datatype

------------------------------ ---------- ----- ---- ---- ---------------------

ID FIRST * , CHARACTER

NAME NEXT * , CHARACTER

AGE NEXT * , CHARACTER

INNER_DATE NEXT * , DATE DD-MON-RR

NULL if INNER_DATE = 0X6e756c6c(character 'null')

Record 4: Rejected - Error on table STUDENT, column ID.

Column not found before end of logical record (use TRAILING NULLCOLS)

Table STUDENT:

3 Rows successfully loaded.

1 Row not loaded due to data errors.

0 Rows not loaded because all WHEN clauses were failed.

0 Rows not loaded because all fields were null.

Space allocated for bind array: 66048 bytes(64 rows)

Read buffer bytes: 1048576 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值