ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle数据库导入导出 详解

Oracle数据库导入导出 详解

原创 Linux操作系统 作者:zhanghuipop 时间:2009-10-15 11:05:06 0 删除 编辑

 

使用oracle的导入导出

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

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

语法:

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

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

Export常用的参数(1

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

File指定导出文件名

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

Incremental导出上次Incremental CumulativeComplete导出而改变的所有对象

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

Complete 导出所有的对象

Indexes 指定索引是否被导出

Export常用的参数(2

Log 指定日志的文件名

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

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

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

Record 指定是否在导出系统表中记录IncrementalCumulative导出,默认为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类型不同,它包括数据库中的charvarcharCLOB等类型

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

  fields terminated by ','

( name char,

   rank interger external,

   birthday date “dd-mm-yyyy”

)

导入有界定符的文件 ()

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

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

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14613712/viewspace-616615/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-10-14

  • 博文量
    21
  • 访问量
    35242