怎样在oracle中导入dmp数据库文件? 

oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令能够把数据从远程数据库server导出到本地的dmp文件,imp命令能够把dmp文件从本地导入到远处的数据库server中。

 利用这个功能能够构建两个同样的数据库。一个用来測试。一个用来正式使用。 运行环境:能够在sqlplus.exe或者dos(命令行)中运行, dos中能够运行时因为在oracle 8i 中 安装文件夹\ora81\bin被设置为全局路径, 该文件夹下有exp.exe与imp.exe文件被用来运行导入导出。 oracle用java编写,sqlplus.exe、exp.exe、imp.exe这两个文件有可能是被包装后的类文件。 sqlplus.exe调用exp.exe、imp.exe所包裹的类,完毕导入导出功能。 以下介绍的是导入导出的实例。

数据导出:

 1 将数据库orcl(实例)全然导出(仅仅有DBA才干够,普通用户不能够),usernamesystem passwordmanager 导出到d:\daochu.dmp中  

       exp system/manager@orcl file=d:\daochu.dmp full=y 

   2 将数据库中system用户与sys用户的表导出  

       exp system/manager@orcl file=d:\daochu.dmp owner=(system,sys) 

   3 将数据库中的表inner_notify、notify_staff_relat导出   

      exp scott/tiger@orcl file= d:\test.dmp tables=(inner_notify,notify_staff_relat)  

   4 将数据库中的表table1中的字段filed1以"00"打头的数据导出  

      exp system/manager@orcl file=d:\daochu.dmp tables=(table1) query=\" where filed1 like 00%\"   

上面是经常使用的导出,对于压缩。既用winzip把dmp文件能够非常好的压缩。也能够在上面命令后面加上 compress=y 来实现。

数据的导入 

1 将d:\daochu.dmp 中的数据导入 test数据库中。  

imp system/manager@test  file=d:\daochu.dmp  

       imp system/manager@test full=y  file= d:\data\newsmgnt.dmp ignore=y

  

上面可能有点问题。由于有的表已经存在,然后它就报错,对该表就不进行导入。 

在后面加上 ignore=y 就能够了。

 2 将d:\daochu.dmp中的表table1 导入 

       imp system/manager@test  file=d:\daochu.dmp  tables=(table1)

  

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。 

注意: 操作者要有足够的权限,权限不够它会提示。

 数据库时能够连上的。

能够用tnsping test 来获得数据库test是否能连上。

附录一: 

给用户添加导入数据权限的操作 

第一,启动sql*plus 

第二。以system/manager登陆 

第三,create user “username”  identified by “password”

(假设已经创建过用户。这步能够省略) 

第四。grant create user,drop user,alter user ,create any view ,drop any view,exp_full_database,imp_full_database,dba,connect,resource,create session to “username字 ”

第五, 执行-cmd-进入dmp文件所在的文件夹,    

  imp userid=system/manager full=y file=*.dmp   

  或者 imp userid=system/manager full=y file=filename.dmp

 运行演示样例: f:\work\oracle_data\backup>imp userid=test/test full=y      file=inner_notify.dmp

 附录二: 

   oracle 不同意直接改变表的拥有者, 利用export/import能够达到这一目的. 

  先建立import9.par,  然后,使用时命令例如以下:imp parfile=/filepath/import9.par 

  例 import9.par 内容例如以下:  

   fromuser=tgpms               

   touser=tgpms2

(注:把表的拥有者由fromuser改为touser,fromuser和touser的用户能够不同)                 

   rows=y       

   indexes=y       

   grants=y       

   constraints=y       

   buffer=409600       

   file==/backup/ctgpc_20030623.dmp       

   log==/backup/import_20030623.log

附录三

EXP、IMP 命令具体解释

命令具体解释:

E:\>exp help=y

通过输入 EXP 命令和username/口令,您能够

在用户 / 口令之后的命令:

实例: EXP SCOTT/TIGER

或者。您也能够通过输入跟有各种參数的 EXP 命令来控制“导出”的执行方式。

要指定參数。您能够使用keyword:

格式: EXP KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)

实例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)

或 TABLES=(T1: P1,T1: P2),假设 T1 是分区表

USERID 必须是命令行中的第一个參数。

keyword      说明(默认)

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

USERID      username/口令

FULL      导出整个文件 (N)

BUFFER      数据缓冲区的大小

OWNER      全部者username列表

FILE      输出文件 (EXPDAT.DMP)

TABLES      表名列表

COMPRESS      导入一个范围 (Y)

RECORDLENGTH    IO 记录的长度

GRANTS      导出权限 (Y)

INCTYPE      增量导出类型

INDEXES      导出索引 (Y)

RECORD      跟踪增量导出 (Y)

ROWS      导出数据行 (Y)

PARFILE      參数文件名称

CONSTRAINTS    导出限制 (Y)

CONSISTENT      交叉表一致性

LOG      屏幕输出的日志文件

STATISTICS      分析对象 (ESTIMATE)

DIRECT      直接路径 (N)

TRIGGERS      导出触发器 (Y)

FEEDBACK      显示每 x 行 (0) 的进度

FILESIZE      各转储文件的最大尺寸

QUERY      选定导出表子集的子句

下列keyword仅用于可传输的表空间

TRANSPORT_TABLESPACE    导出可传输的表空间元数据 (N)

TABLESPACES    将传输的表空间列表

E:\>imp help=y

能够通过输入 IMP 命令和您的username/口令

跟有您的username / 口令的命令:

实例: IMP SCOTT/TIGER

或者, 能够通过输入 IMP 命令和各种自变量来控制“导入”依照不同參数。

要指定參数。您能够使用keyword:

格式: IMP KEYWORD=value 或KEYWORD=(value1,value2,...,vlaueN)

实例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N

或 TABLES=(T1: P1,T1: P2)。假设 T1 是分区表

USERID 必须是命令行中的第一个參数。

keyword      说明(默认)

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

USERID      username/口令

FULL      导入整个文件 (N)

BUFFER      数据缓冲区大小

FROMUSER      全部人username列表

FILE      输入文件 (EXPDAT.DMP)

TOUSER      username列表

SHOW      仅仅列出文件内容 (N)

TABLES      表名列表

IGNORE      忽略创建错误 (N)

RECORDLENGTH    IO 记录的长度

GRANTS      导入权限 (Y)

INCTYPE      增量导入类型

INDEXES      导入索引 (Y)

COMMIT      提交数组插入 (N)

ROWS      导入数据行 (Y)

PARFILE      參数文件名称

LOG      屏幕输出的日志文件

CONSTRAINTS    导入限制 (Y)

DESTROY      覆盖表空间数据文件 (N)

INDEXFILE      将表/索引信息写入指定的文件

SKIP_UNUSABLE_INDEXES    跳过不可用索引的维护 (N)

ANALYZE      运行转储文件里的 ANALYZE 语句 (Y)

FEEDBACK      显示每 x 行 (0) 的进度

TOID_NOVALIDATE    跳过指定类型 id 的校验

FILESIZE      各转储文件的最大尺寸

RECALCULATE_STATISTICS 又一次计算统计值 (N)

下列keyword仅用于可传输的表空间

TRANSPORT_TABLESPACE    导入可传输的表空间元数据 (N)

TABLESPACES    将要传输到数据库的表空间

DATAFILES      将要传输到数据库的数据文件

TTS_OWNERS      拥有可传输表空间集中数据的用户

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

假设仅仅导出表的结构(建表语句),不导出表的数据。可用Tools--Export User Objects

选中要导出的表。设置好导出的路径和各个參数后。点击Export就OK

PS:这样的方式仅仅能导出属于这个用户的表,其它用户的表不能导出。建议用命令行导出(exp, imp)

假设想将表结构。表的数据。触发器,函数之类的所有导出,可用Tools--Export Tables

选中要导出的表(可选多个),导出方式有三种:

Oracle Export,Sql Insert,pl/sql developer

第一种是导出为.dmp的文件格式。.dmp文件是二进制的,能够跨平台,还能包括权限,效率也非常不错。用的最广。

另外一种是导出为.sql文件的。选中create tables选项,where clause 里写入 where rownum<1可用文本编辑器查看,通用性比較好。但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob),假设有。会提示不能导出。能够用第一种和第三种方式导出。

第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式。仅仅能用Pl/sql developer自己导入导出;不能用编辑器查看,效率不知道怎么样

PS:仅仅有“Oracle Export”方式导出再导入后,表结构和索引结构没有发生变化,另两种方式都改变了索引类型。

导入的情况和导出一样

在表的全部者不能改变的情况下,能够使用导入导出表结构和表数据的方法,将表移动到你想要的全部者下(注:特别是建立表的时候假设以sysdba的身份登录的话,全部表的全部者都为sys,此时会对你用c#訪问数据库产生麻烦。我在我的还有一篇文章中也提到《.NET连接Oracle数据库的错误,pl/sql中的myobjects过滤器 》),此时你仅仅能用这样的方法改变全部者。

导入表结构:

运行刚刚导出的sql文件,记住要删掉table前的username,比方曾经这表名为sys.tablename。必须删除sys

导入表数据:

运行刚刚导出的sql文件

Oracle imp exp命令具体解释的更多相关文章

  1. Oracle imp exp 导入导出 执行脚本

    一:用命令 imp/exp 的方式进行数据的导入和导出 一:文件后缀名: 二:oracle  导出 exp 命令 echo 开始备份数据库 if not exist D:\oracle_bak\fil ...

  2. 使用oracle的exp命令时,提示出--hash: exp: command not found

    使用oracle的exp命令时,提示出--hash: exp: command not found 原因:当你在终端使用exp的命名时,当前的账户,并不是oracle认可的账户. 在安装oracle时 ...

  3. Oracle数据导入导出imp/exp命令总结

    racle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利用 ...

  4. Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令

    Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中. 利 ...

  5. oracle imp dmp命令

    vi par.txt userid=system/oracle tables=(user.table,...) query="where org_no like 32%" file ...

  6. oracle 使用exp命令 sys用户登录 导出表存为dmp文件

    在cmd下面,使用exp命令,格式为 exp \"sys/123456@dbname as sysdba\" file=d:\dmp\test.dmp tables=sys.tes ...

  7. oracle imp exp 导入导出

    一.exp导出 exp myuser/mypwd@orcl file=D:\sql-bak\myuser.dmp log=D:\sql-bak\myuser.log exp 用户/密码@实例名 fil ...

  8. oracle中imp命令具体解释

    oracle中imp命令具体解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文件.imp使用的基本格式:imp[username[/pass ...

  9. 使用imp命令和exp命令对oracle数据库进行导入导出操作

    命令说明 imp命令和exp命令需要在cmd命令窗口下执行,并且需要在系统环境变量中配置imp,exp命令所在目录 导出命令 --全库导出 exp system/systempassword@orcl ...

随机推荐

  1. 条款3:尽可能使用const(use const whenever possible)

    1.只要这(某值保持不变)是事实,就应该确实说出来,这样可以获得编译器的协助,确保这条约束不被违反. 2.keyword const 有很多种用法,但都简单易用. 2.1classes 外部修饰glo ...

  2. 【03】使用 Firebug 调试 JavaScript

    [03] 使用 Firebug 调试 JavaScript 描述 Firebug是一个非常强大的工具,可以帮助您发现代码发现错误的错误并解决错误. 在此我们使用Firebug来处理Javascript ...

  3. PHPTaint-检测xss/sqli/shell注入的php扩展模块[转]

    web渗透者习惯采用黑盒或灰盒的方面来检测一款web应用是否存在漏洞,这种检测方法可以屏蔽不少漏洞,特别是程序逻辑中的漏洞.但如果能配合白盒的源码审计(也可以叫漏洞挖掘),效果将会更好,当然人力成本也 ...

  4. 【ITOO 2】.NET 动态建库建表:使用SQL字符串拼接方式

    导读:在最近接手的项目(高效云平台)中,有一个需求是要当企业用户注册时,给其动态的新建一个库和表.刚开始接手的时候,是一点头绪都没有,然后查了一些资料,也问了问上一版本的师哥师姐,终于有了点头绪.目前 ...

  5. [codevs1050]棋盘染色 2

    [codevs1050]棋盘染色 2 试题描述 有一个5*N的棋盘,棋盘中的一些格子已经被染成了黑色,你的任务是对最少的格子染色,使得所有的黑色能连成一块. 输入 第一行一个整数N(<=100) ...

  6. [NOIP2000] 提高组 洛谷P1023 税收与补贴问题

    题目背景 每样商品的价格越低,其销量就会相应增大.现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给定的最高价位后,销量以某固定数值递 ...

  7. 【Codeforces Round #501 (Div. 3)】

    A:https://www.cnblogs.com/myx12345/p/9842904.html B:https://www.cnblogs.com/myx12345/p/9842964.html ...

  8. 【HDOJ6308】Time Zone(模拟)

    题意: 以"UTC+X'', "UTC-X'', "UTC+X.Y'', or "UTC-X.Y'' 四种格式给定当地时间,要求转换为北京时间 思路:Gold_ ...

  9. 转:Linux中的内存管理

    前一段时间看了<深入理解Linux内核>对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看 ...

  10. 【APUE】信号量、互斥体和自旋锁

    http://www.cnblogs.com/biyeymyhjob/archive/2012/07/21/2602015.html http://blog.chinaunix.net/uid-205 ...