oracle 导出的几种方式

如题所述

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 “ ) 导入有界定符的文件 (续) 再看一个例子(处理空字段): 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 �6�7 ] ] 参数: 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
温馨提示:答案为网友推荐,仅供参考
相似回答