文档库 最新最全的文档下载
当前位置:文档库 › oracle 导出的几种方式

oracle 导出的几种方式

oracle 导出的几种方式.txt其实全世界最幸福的童话,不过是一起度过柴米油盐的岁月。一个人愿意等待,另一个人才愿意出现。感情有时候只是一个人的事,和任何人无关。爱,或者不爱,只能自行了断。Oracle数据库导入与导出
使用oracle的导入导出

下面这些在使用过程中经常使用到的.(以后加上调优的参数说明,SGA区,共享池,PGA,等等spfile里面的参数)





1.Export工具是一个导出程序

语法:

exp UserId/Password@数据库全局名 file=DMP文件的目录 其它参数

获取帮助,敲入:exp help=y





Export常用的参数(1)

Direst 选择是否采用直接路径导出

File指定导出文件名

Full Full=Y将整个数据库导出

Incremental导出上次Incremental 、Cumulative、Complete导出而改变的所有对象

Cumulative 导出上次Cumulative、Complete导出后改变的所有对象

Complete 导出所有的对象

Indexes 指定索引是否被导出

Export常用的参数(2)

Log 指定日志的文件名

Owner 允许为指定的用户导出对象

Parfile 允许从一个文件读取导出参数

Query 指定从表中导出符合条件的行

Record 指定是否在导出系统表中记录Incremental或Cumulative导出,默认为Y

Rows 控制表数据是否被导出

Tables 允许导入一个或多个表

Triggers 指定触发器是否和表一起导出





2.Import工具是一个导入程序

语法:

imp UserId/Password@数据库全局名 file=DMP文件的目录 其它参数

获取帮助,敲入:imp help=y

Import常用的参数(1)

File 指定导入文件名

Fromuser 允许导入指定的用户拥有的表

Full full=Y时,导入DMP文件中所有的事物

Ignore 为Y时,如果数据出错,将继续下一行数据

Indexes 是否导入索引

Log 指定日志文件

Parfile 指定从文件中读导出参数

Rows 指定是否导入表的数据

Import常用的参数(2)

Show 指定显示全部要被执行的参数

Tables 指定导入一个或多个表

Touser 指定导入到哪个用户名下

Userid 指定导入的用户的用户名和密码





3.SQL*Loader简介

SQL*Loader从文本文件导数据到数据库中。功能包括:

从定界文件装数据

从固定长度的文本文件装数据

从二进制文件装数据

在输入文件中过滤数据

SQL*Loader使用的数据类型

Char:该char和数据库中的char类型不同,它包括数据库中的char、varchar、CLOB等类型

Date:时间类型

Interger external:定义整数值

Decimal external:定义包括小数点的数值



装载字段固定长度的文件

一个例子:

Load data

infile ‘yyb_data.txt’

append

Into table emp

( name position(1:10) char,

rank position(11:13) interger external,

birthday position(13:

23) date “dd-mm-yyyy”

)

导入有界定符的文件

一个例子:

Load data

Infile ‘c:\yyb.txt’

append

Into table emp

( name char terminated by ‘,’,

rank interger external terminated by ‘,’,

birthday date “dd-mm-yyyy” terminated by ‘,’

)

导入有界定符的文件 (续)

再看一个例子(处理空字段):

Load data

Infile ‘c:\yyb.txt’

append

Into table emp

trailing nullcols

( name char terminated by ‘,’,

rank interger external terminated by ‘,’,

birthday date “dd-mm-yyyy” terminated by ‘,’ )

如何把数据放到表中

从前面的例子中可以看出,它们都包含关键字append,还有其它的关键字:

Insert:指定要装载的是空表,否则失败

Append:添加数据到表,即使表中有数据

Replace:加载前,将删除表中的所有数据

Truncate:与replace同

使用SQL*Loader命令和参数

命令语法为:

sqlldr [param=value [,param= valus … ] ]

参数:

Userid 用户名和密码

Control 指定控制文件名,也就是存放前面的胶片中的代码的文件

Log 指定日志文件名

Bad 指定存放坏记录的文件名

SQL*Loader参数(续前)

Data 指定数据文件名

Skip 允许跳过的记录数量

Load 允许装入的记录数量

Errors 指定允许的错误数

Rows 指定装载多少条记录提交一次

Direct 可以指定为直接路径装载

Parfile 指定包含命令参数的文件名







举个例子来说明:

(1)先创建一张表:



create table test_load(

stu_num number(10,0),

stu_name varchar2(50),

stu_date date

)





(2)准备数据文件(可以采用spool导出,再下来会讲到): dateFile.txt



"1234","niegc","2006-01-01"

"1235","ngc","2006-01-02"





(3)写控制文件(必须注意每一个字段的位置,和时间字段的格式):loader.ctl



Load data

infile 'F:\test\dateFile.txt'

Append into table test_load

fields Terminated by "," Optionally enclosed by'"'

(

stu_num,

stu_name,

stu_date date "YYYY-MM-DD"

)



(3)执行sqlldr



C:\Documents and Settings\Administrator>sqlldr niegc/niegc control=f:\test\loader.ctl log=f:\test\aaaaaa.log

SQL*Loader: Release 9.2.0.1.0 - Production on 星期三 4月 26 22:06:35 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

达到提交点,逻辑记录计数2



成功了,是不是很简单,append 还是insert 上面有说明的哦.





4.Spool简介

spool 是数据的导出命令,最简单的执行如下:

用sqlplus 登陆:

SQL>spool f:\test\bbb.txt

SQL> select * from test_load;

STU_NUM STU_NAME STU_DATE

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

1234 niegc

01-1月 -06

1235 ngc 02-1月 -06

SQL> spool off



这样就可以导出了

如果你想导出自己定义的格式,你可以先set 参数然后再spool

例如:

SET COLSEP ' '

SET ECHO OFF

SET FEEDBACK OFF

SET HEADING OFF

SET PAGESIZE 0

SET LINESIZE 1000

SET NUMWIDTH 12

SET TERMOUT OFF

SET TRIMOUT ON

SET TRIMSPOOL ON

相关文档