1. 程式人生 > >Oracle資料匯入匯出imp/exp sp2-0734:未知的命令開頭'imp 忽略了剩餘行預設分類 解決辦法

Oracle資料匯入匯出imp/exp sp2-0734:未知的命令開頭'imp 忽略了剩餘行預設分類 解決辦法

sp2-0734:未知的命令開頭'imp 忽略了剩餘行預設分類 2010-03-03 17:36:08 閱讀134 評論0 字號:大中小
很多時候問題並沒有我們想象的那麼複雜,比如這個問題,我Google,百度了很久都沒有結果,

最後在Google的一個小連結裡面看到了,應該是在cmd的dos命令提示符下執行,而不是在sqlplus裡面。。。。。。但是格式一定要類似於:

imp hqbzl/[email protected] full=y  file=C:\school.dmp ignore=y



imp 命令是在dos提示符下執行的。
直接cmd後執行而不是在sql下執行的


資料匯出:
1 將資料庫TEST完全匯出,使用者名稱system 密碼manager 匯出到D:daochu.dmp中
   exp system/

[email protected] file=d:daochu.dmp full=y
2 將資料庫中system使用者與sys使用者的表匯出
   exp system/[email protected] file=d:daochu.dmp owner=(system,sys)
3 將資料庫中的表inner_notify、notify_staff_relat匯出
    exp aichannel/[email protected] file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

4 將資料庫中的表table1中的欄位filed1以"00"打頭的資料匯出
   exp system/
[email protected]
file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"

  上面是常用的匯出,對於壓縮,既用winzip把dmp檔案可以很好的壓縮。
  也可以在上面命令後面 加上 compress=y 來實現。

資料的匯入
1 將D:daochu.dmp 中的資料匯入 TEST資料庫中。
   imp system/[email protected]  file=d:daochu.dmp
   imp aichannel/[email protected] full=y  file=d:datanewsmgnt.dmp ignore=y
   上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行匯入。
   在後面加上 ignore=y 就可以了。
2 將d:daochu.dmp中的表table1 匯入
imp system/
[email protected]
  file=d:daochu.dmp  tables=(table1)

基本上上面的匯入匯出夠用了。不少情況要先是將表徹底刪除,然後匯入。

注意:
操作者要有足夠的許可權,許可權不夠它會提示。
資料庫時可以連上的。可以用tnsping TEST 來獲得資料庫TEST能否連上。


當然,上面的方法在匯出資料時可能會匯出很大的包,那是因為你的使用者可能在授權的時候授予了DBA的許可權,所以可以採用下面方法來進行資料庫備份:

資料庫備份
建議系統過渡後,每週進行一次備份。或者在資料表發生重大改變前,對要改變的資料表進行備份。
執行以下步驟,進行備份。
在命令列裡,敲入“cmd”,回車,進入命令列視窗。
在視窗中,輸入:
exp mas/[email protected]

系統提示:輸入陣列提取緩衝區大小: 4096 >
可以直接回車;

系統提示:匯出檔案: EXPDAT.DMP>
此處輸入匯出檔案的位置,其路徑必須存在,Oracle在這裡不會自動建立路徑,但可以建立檔名。備份檔案以dmp作為字尾。
輸入內容如:e:\work\mas_db_090925v1.dmp 回車

系統提示: (1)E(完整的資料庫),(2)U(使用者) 或 (3)T(表): (2)U > u
此處可以輸入u,也可以直接回車,因為系統此時預設的是U

系統提示:匯出許可權(yes/no):yes>回車

系統提示:匯出表資料(yes/no):yes>回車

系統提示:壓縮區(yes/no):yes>回車

系統提示:要匯出的使用者: (RETURN 以退出) > mas

系統提示:要匯出的使用者: (RETURN 以退出) > 回車

此時系統會自動進行備份
本文對Oracle資料的匯入匯出 imp ,exp 兩個命令進行了介紹, 並對其相應的引數進行了說明,然後通過一些示例進行演練,加深理解.
文章最後對運用這兩個命令可能出現的問題(如許可權不夠,不同oracle版本)進行了探討,並提出了相應的解決方案;
本文部分內容摘錄自網路,感謝網友的經驗總結;


一.說明

   oracle 的exp/imp命令用於實現對資料庫的匯出/匯入操作;
   exp命令用於把資料從遠端資料庫伺服器匯出至本地,生成dmp檔案;
   imp命令用於把本地的資料庫dmp檔案從本地匯入到遠端的Oracle資料庫中。

二.語法

可以通過在命令列輸入 imp help=y 獲取imp的語法資訊:
=============================================================================
  C:\Documents and Settings\auduser>imp help=y

  Import: Release 9.0.1.1.1 - Production on 星期二 5月 20 18:21:57 2008

  (c) Copyright 2001 Oracle Corporation.  All rights reserved.

  可以通過輸入 IMP 命令和您的使用者名稱/口令
  後接使用者名稱/口令的命令:

  例程: IMP SCOTT/TIGER

  或者, 可以通過輸入 IMP 命令和各種引數來控制“匯入”
  按照不同引數。要指定引數,您可以使用關鍵字:

  格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
  例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
  或 TABLES=(T1: P1,T1: P2),如果 T1 是分割槽表

  USERID 必須是命令列中的第一個引數。

  關鍵字  說明(預設)        關鍵字      說明(預設)
  --------------------------------------------------------------------------
  USERID   使用者名稱/口令           FULL         匯入整個檔案 (N)
  BUFFER   資料緩衝區大小         FROMUSER     所有人使用者名稱列表
  FILE     輸入檔案 (EXPDAT.DMP)    TOUSER       使用者名稱列表
  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)
  FEEDBACK               每 x 行顯示進度 (0)
  TOID_NOVALIDATE        跳過指定型別 ID 的驗證
  FILESIZE               每個轉儲檔案的最大大小
  STATISTICS             始終匯入預計算的統計資訊
  RESUMABLE              遇到與空格有關的錯誤時掛起 (N)
  RESUMABLE_NAME         用來標識可恢復語句的文字字串
  RESUMABLE_TIMEOUT      RESUMABLE 的等待時間
  COMPILE