开发人员常用的Oracle导入/导出命令

作为我们开发人员经常使用exp导出某一个用户下的所有对象从某一个数据库,
然后导入。通常导入的时候总是会遇到一些意想不到的问题,其中一个问题就是数据库中已经存在同名对象,
同时也为那些比较复杂的参数而烦恼。其实对于我们,只需要做下面三个动作,就能顺利完成你的导入导出工作:
1.导出
   Exp  <username>[/<password>][@<connect_string>] Owner=<user_name> File=<filename.dmp>

2.Drop掉目标用户下的所有对象
   执行下面的语句: 

 1 None.gif declare      
 2 None.gif     cursor  c_cursor  is  
 3 None.gif     select   OBJECT_NAME ,OBJECT_TYPE
 4 None.gif     from  user_objects 
 5 None.gif     where  OBJECT_TYPE  IN  ( ' TABLE ' , ' VIEW ' ,
 6 None.gif                          ' PROCEDURE ' , ' FUNCTION ' ,
 7 None.gif                          ' PACKAGE ' , ' PACKAGE BODY ' ,
 8 None.gif                          ' SEQUENCE ' , ' MATERIALIZED VIEW ' ,
 9 None.gif                          ' SYNONYM ' , ' TYPE ' , ' TYPE BODY ' )
10 None.gif     ORDER   BY  OBJECT_TYPE, OBJECT_NAME ;
11 None.gif    message  varchar2 ( 100 );    
12 None.gif    errorNums  integer  ;
13 None.gif begin     
14 None.gif    errorNums : =   0 ;
15 None.gif    dbms_output.put_line( ' Dropping objects ' );
16 None.gif     FOR  tab_rec  IN  c_cursor    loop        
17 None.gif        dbms_output.put_line( ' dropping  '   ||  tab_rec.OBJECT_TYPE  ||   '   '      ||  TAB_REC. OBJECT_NAME );
18 None.gif         begin
19 None.gif             execute  immediate  ' drop  '   ||  TAB_REC.OBJECT_TYPE  ||   '   '   ||  tab_rec. OBJECT_NAME ;        
20 None.gif        exception
21 None.gif             when  others  then
22 None.gif                errorNums : =  errorNums  +   1 ;
23 None.gif                dbms_output.put_line( ' dropping err. ' );
24 None.gif                dbms_output.put_line(sqlerrm);
25 None.gif         end ;
26 None.gif     end  loop;    
27 None.gif     if  errorNums > 0   then
28 None.gif        dbms_output.put_line( ' Finished with error. Please execute again. ' );
29 None.gif     else
30 None.gif        dbms_output.put_line( ' Finished ' );
31 None.gif     end   if ;    
32 None.gif end ;

   执行上面的语句一定要小心,因为它是不可恢复的.
   第二,如果发现执行中有一些问题,某些对象不能被删除掉,那可能是对象之间有一种依赖关系,重新执行一遍
2.导入
   Exp  <username>[/<password>][@<connect_string>]    FromUser=<user_name>     ToUser=<user_name>     File=<fileName.dmp>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值