需要導入dmp數據到mysql上。
一開始的時候,使用navicat oracle導入。發現不能導入,不支持imp導入。
然后,經過一番摸索(一天 <T_T>),找到了導入的方法。
dmp是Oracle的導出文件格式
它有兩種導出方式:傳統export(exp)導出和DataPump Export(expdp)導出。
分別對應兩種導入方式:imp和impdp。
第一步,安裝Oracle獲取相關的工具。sql plus等。方便操作。
第二步,創建新的用戶來存儲導入的數據。(記得創建用戶,這坑了我不少時間)
以上兩步都可以w3的教程找到。w3cschool-oracle
第三步,使用imp命令導入,imp sysdba/password@localhost/orcl file=D:\import.dmp log=D:\import.log fromuser=導入的數據庫名稱 touser=新創建的用戶名
命令的參數解析一下:sysdba就是帶有登錄名的賬號,password就是對應的密碼,file是dmp的路徑,log是日志文件(有必要加上),fromuser就是導出時候的用戶名(報錯的時候可以看到),touser就是你新創建的用戶用來接收數據的。
百度上,很多命令都是imp 用戶名/密碼@實例名 file=導入的dmp文件路徑 full=y ignore=y
。執行的時候,就會發生以下錯誤:
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的導入
. 正在將 BASE 的對象導入到 OT(新建的用戶名)
. 正在將 DATA(導入的數據庫名稱) 的對象導入到 DATA(導入的數據庫名稱)
"ALTER SESSION SET CURRENT_SCHEMA= "DATA""
IMP-00003: 遇到 ORACLE 錯誤 1435
ORA-01435: 用戶不存在
IMP-00000: 未成功終止導入
所以,要把DATA添加到fromuser參數中,同時去掉full=y ignore=y(忽略錯誤是不合理的)(同樣也是花了很多時間找博客)。
最后,幾秒鍾就把數據導進去了。