Chinaunix首页 | 论坛 | 博客
  • 博客访问: 199779
  • 博文数量: 21
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 220
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-05 21:34
文章分类

全部博文(21)

文章存档

2008年(1)

2006年(20)

我的朋友

分类: Oracle

2006-04-23 23:43:37

使用oracle的导入导出

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

 

 

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

语法:

exp 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 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

(  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

 

 

 

 

2006-04-23 晚上23点59分 于 北京通州

 

 

 

阅读(5116) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-08-27 15:21:36