Oracle数据库导入导出总结

数据导出: 
 1 将数据库zxcc完全导出,用户名kf 密码zx 导出到D:\zxcc.dmp中    exp kf/zx@zxcc file=d:\zxcc.dmp full=y     

   full=y 表示全库导出。full总共有2个可选项yes(y)/no(n),缺省情况下full=no,这时只会将该用户下的对象导出。

 2 将数据库zxcc中kf用户与cc用户的表导出    exp kf/zx@zxcc file=d:\zxcc_ur.dmp owner=(kf,cc)     
   full方式可以备份所有用户的数据库对象,包括表空间、用户信息等,owner=XX只能备份指定用户的对象,其他用户下的就不备份了,EXP中full=y和owner=XX是不能同时使用的。  
 3 将数据库zxcc中的表kf_operator、kf_role导出 
    exp kf/zx@zxcc file= d:\zxcc_tb.dmp tables=(kf_operator,kf_role)       
    tables=xx 表示备份相关表,不能同时和owner、full使用。 

 4 将数据库中的表kf_operator中的字段oper_id以"00"打头的数据导出 
   exp kf/zx@zxcc file=d:\zxcc_t.dmp tables=(kf_operator) query=\" where oper_id like '00%'\"     
   query主要是导出合适条件的数据。使用该参数时,需要注意对所有操作系统保留字符都要使用转义符号。若有括号()也需要转义: 
   query=\"where dt=to_date\(\'2007-09-22\',\'yyyy-mm-dd\'\)\" 。 
   如果遇到条件比较繁琐的语句,频繁的转义操作不仅费时,还很容易出错。我们可以使用exp或expdp的PARFILE参数避免query内容的繁琐转义问题。    例: 
   oracle DBALNP01 > cat > zxcc.par    tables=kf_operator    file=zxcc.dmp 
   query="where dt_time=to_date('2010-06-25','yyyy-mm-dd')"     这时就可以尽情的再双引号中写条件语句了。


数据的导入

 

 

D:\zxcc.dmp 

中的数据导入

 

zxcc

数据库中。

 

 

 

 

imp kf/zx@zxcc file=d:\zxcc.dmp 

 

 

 

 

 

 

 

导数据得时候,有可能报错。为什么?有以下主要的原因:

 

 

 

 

A. 

导入的对象(表,视图,方法等)原本不属于当前连接的用户的

 

 

 

 

B. 

导入的对象在该数据库的指定用户下已经存在

 

 

 

 

C. 

导入的对象的原本用户不再这个数据库里

 

数据的导入 
 1 将D:\zxcc.dmp 中的数据导入 zxcc数据库中。    imp kf/zx@zxcc file=d:\zxcc.dmp     
   导数据得时候,有可能报错。为什么?有以下主要的原因:  
  A. 导入的对象(表,视图,方法等)原本不属于当前连接的用户的  
  B. 导入的对象在该数据库的指定用户下已经存在  
  C. 导入的对象的原本用户不再这个数据库里

 对于这三个问题的处理方法如下:      
    a/c、所有对象全部导入到指定的账户下:      
    imp kf_new/zx@zxcc_new file=d:\zxcc.dmp fromuser=kf touser=kf_new      
    其中fromuser=kf为.dmp文件里的对象的原先的owner, touser=kf_new 为作为导入的对象的新的Owner.      
    b、忽略/插入数据:  
  Imp system/123456@ATSTestDB file=c:\export.dmp ignore=y      
    其中ignore=y告诉imp.exe把数据直接插入到相应对象(并且如果导入的对象里面有其他的对象,如约束,索引等,会在数据插入后被创建)。

 2 将d:\zxcc_tb.dmp中的表tb_operator 导入 
   imp kf/zx@zxcc  file=d:\zxcc_tb.dmp  tables=(tb_operator)   
   忽略加载约束  
  有时候导数据进来的时候,我们不需要把它的约束,比如一些外键约束等都导进来,可以加上参数constraints=N  
  不加载索引(比如唯一性的索引),可以加上参数indexs=N      
   只加载结构,不加载数据,如果只要表的结构等定义(约束,触发器),那么不要里面的数据,可以加上参数rows=N

 Imp kf/zx@zxcc_new file=d:\zxcc.dmp fromuser=kf touser=kf_new ignore=y 


oracle数据库其他常用命令: 
   1、给用户增加导入数据权限的操作    第一,启动sql*puls 
   第二,以管理员(DBA)用户登陆    第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)    第四,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 用户名字 
   第五, 运行-cmd-进入dmp文件所在的目录, 
      imp userid=管理员用户名/密码 full=y file=*.dmp 
      或者 imp userid=管理员用户名/密码 full=y file=filename.dmp 

2、Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.    先建立.par文件, 
   然后,使用时命令如下:imp parfile=/filepath/import9.par    例 import9.par 内容如下:         FROMUSER=user        
        TOUSER=user_new     (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)                   ROWS=Y         INDEXES=Y         GRANTS=Y 
        CONSTRAINTS=Y         BUFFER=409600 
        file==/filepath/xxxx.dmp         log==/filepath/import_log.log


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值