sp2-0734:未知的命令開頭'imp 忽略了剩餘行默認分類 2010-03-03 17:36:08 閱讀134 評論0 字號:大中小
很多時候問題並沒有我們想象的那麼複雜,比如這個問題,我Google,百度了很久都沒有結果,
最後在Google的一個小鏈接裏面看到了,應該是在cmd的dos命令提示符下執行,而不是在sqlplus裏面。。。。。。但是格式一定要類似於:
imp hqbzl/123@accp full=y file=C:\school.dmp ignore=y
imp 命令是在dos提示符下執行的。
直接cmd後執行而不是在sql下執行的
數據導出:
1 將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:daochu.dmp中
exp system/manager@TEST file=d:daochu.dmp full=y
2 將數據庫中system用戶與sys用戶的表導出
exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)
3 將數據庫中的表inner_notify、notify_staff_relat導出
exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的導出,對於壓縮,既用winzip把dmp文件可以很好的壓縮。
也可以在上面命令後面 加上 compress=y 來實現。
數據的導入
1 將D:daochu.dmp 中的數據導入 TEST數據庫中。
imp system/manager@TEST file=d:daochu.dmp
imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
上面可能有點問題,因爲有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上 ignore=y 就可以了。
2 將d:daochu.dmp中的表table1 導入
imp system/manager@TEST file=d:daochu.dmp tables=(table1)
基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然後導入。
注意:
操作者要有足夠的權限,權限不夠它會提示。
數據庫時可以連上的。可以用tnsping TEST 來獲得數據庫TEST能否連上。
當然,上面的方法在導出數據時可能會導出很大的包,那是因爲你的用戶可能在授權的時候授予了DBA的權限,所以可以採用下面方法來進行數據庫備份:
數據庫備份
建議系統過渡後,每週進行一次備份。或者在數據表發生重大改變前,對要改變的數據表進行備份。
執行以下步驟,進行備份。
在命令行裏,敲入“cmd”,回車,進入命令行窗口。
在窗口中,輸入:
exp mas/123456@mas
系統提示:輸入數組提取緩衝區大小: 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