使用exp和imp導入導出指定表


GPS平台、網站建設、軟件開發、系統運維,找森大網絡科技!
https://cnsendnet.taobao.com
來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1509

 

從源數據庫導出:這種方式,包含創建表,插入數據,所以,目標應沒有這個表

exp user1/pwd@server1 file=c:\temp\exp.dmp tables=(table1, table2)

例如:

exp platadmin/plat_8admin@hkserver32 file=d:\hkdata.dmp tables=(REPORT_DRIVERATTENDANCE_day,REPORT_DRIVERATTENDANCE_MONTH)

我試了一下,在本地不能導出,還是得在服務器上導,在服務器上導很快,幾十萬條數據的表,一兩秒鍾就導出完了

導入到目標數據庫:

imp user2/pwd@server2 file=c:\temp\exp.dmp tables=(table1, table2)

例如:

導入也很快,一兩秒鍾

imp platadmin/plat_8admin@orclgis file=d:\hkdata.dmp tables=(REPORT_DRIVERATTENDANCE_day,REPORT_DRIVERATTENDANCE_MONTH)

  • 1

Oracle就是有這個好處,可以直接將遠程的數據導出到本地;或者將本地的數據文件導入到遠程數據庫。而SQL SERVER的備份、還原文件,一定是放在遠程服務器本機的。

補充一下,如果有許多表,那么以上語句可能會換行。但以上命令是在DOS命令窗口執行的,命令行方式,容不得換行。那咋辦呢?我的笨辦法是將語句拷貝到WORD文檔,然后將回車換行符替換掉。替換的方法:在替換窗口,查找內容輸入 ^p(注意是小寫),替換內容為空,然后替換即可。

=====================================

以 sysdba 身份運行,導出導入指定用戶所屬表:

exp ‘sys/123456@Service1 as sysdba’ file=c:\temp\exp.dmp table 
s=(sde.ISLAND)

imp ‘sys/888888@Service2 ’ file=c:\temp\exp.dmp fromuser 
=sde tables=(ISLAND)

================================================= 
如果表空間的名字不一樣,會報 ORA-00959 錯誤,咋辦?

1、先從源數據庫,導出建表腳本(DDL)

2、在新庫新表空間里運行這些DDL

3、imp,加上fromuser,touser,ignore=Y選項

imp 'sys/lt@HPM as sysdba' file=c:\temp\base.dmp fromuser=hydg touser=hpm tables=(org_user,SYS_ONLINE,sys_userRoles,Org_Role,Org_Group,sys_Event) ignore=Y

  • 1

有關ORA-00959 錯誤的應對之道,參考文章:

快速解決IMP中的ORA-00959

 

GPS平台、網站建設、軟件開發、系統運維,找森大網絡科技!
https://cnsendnet.taobao.com
來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1509


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM