解決imp匯入時,使用源DB中表空間名的問題
10g裡可以使用remap_schema和remap_tablespace顯示指定,9i的話需要動點腦筋了~
總的來說,Oracle並沒有提供什麼引數讓你將資料匯入到指定的表空間中,資料預設還是匯入到它原來所在的表空間。你可以用IMP 的SHOW引數可以看到其建立指令碼中會指定TABLESPACE引數,而這個值是原系統該物件所在的表空間,跟你使用者預設的表空間是沒有關係的,如下:"CREATE TABLE "EMPLOYEES" ("EMPLOYEE_ID" NUMBER(6, 0), "FIRST_NAME" VARCHAR2"
"(20), "LAST_NAME" VARCHAR2(25) NOT NULL ENABLE, "EMAIL" VARCHAR2(25) NOT NU"
"LL ENABLE, "PHONE_NUMBER" VARCHAR2(20), "HIRE_DATE" DATE NOT NULL ENABLE, ""
"JOB_ID" VARCHAR2(10) NOT NULL ENABLE, "SALARY" NUMBER(8, 2), "COMMISSION_PC"
"T" NUMBER(2, 2), "MANAGER_ID" NUMBER(6, 0), "DEPARTMENT_ID" NUMBER(4, 0)) "
"PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELIS"
"TS 1 FREELIST GROUPS 1) TABLESPACE "EXAMPLE" LOGGING NOCOMPRESS"
. . 正在跳過表 "EMPLOYEES""CREATE TABLE "JOBS" ("JOB_ID" VARCHAR2(10), "JOB_TITLE" VARCHAR2(35) NOT NU"
"LL ENABLE, "MIN_SALARY" NUMBER(6, 0), "MAX_SALARY" NUMBER(6, 0)) PCTFREE 1"
"0 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREE"
"LIST GROUPS 1) TABLESPACE "EXAMPLE" LOGGING NOCOMPRESS"
. . 正在跳過表 "JOBS"看其中的紅色部分,如果在原系統中你建立EMPLOYEES指定的表空間是EXAMPLE,而此時該使用者的預設表空間是USERS,那麼EXP的DMP檔案裡是EXAMPLE,而不是USERS,當然如果你建表時沒特意指定表空間,那麼預設的就會是使用者的預設表空間。所以對於這個問題的解決方法是:1. 如果目標系統中不存在跟原系統一樣的表空間,這個一樣,是指儲存你要匯入的資料的表空間如:你要匯入的資料在原系統中是存放在USERS表空間的,而在目標系統並不存在這個表空間,那麼你在匯入資料時資料就會匯入到目標系統中該使用者的預設表空間。2. 如果存在一樣的表空間,則在目標系統中:a) REVOKE UNLIMITED TABLESPACE FROM 該USER
b) 取消該使用者在原系統匯出資料所在表空間的配額:
SQL>ALTER USER XXX QUOTA 0 ON OLD_TABLESPACE
c) 將你要儲存匯入資料的表空間設為該使用者預設的表空間
d) 新增該使用者在其預設表空間中的配額:
SQL>ALTER USER XXX QUOTA UNLIMITED ON NEW_TABLESPACE
3. 其他方法:a) 可以用IMP的SHOW=Y將建立指令碼SPOOL出來,然後修改其建立指令碼中的TABLESPACE,將其修改成你所需要的表空間。
b) 用第三方工具,比如TOAD,產生其建立指令碼,然後修改TABLESPACE值,然後匯入的時候加IGNORE=Y進行匯入。
c) 可以先匯入資料,然後用TOAD的Rebuild Multi Objects,進行資料轉移。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-734365/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- imp中的indexfile引數解決imp指定表空間問題Index
- 使用IMP將資料匯入指定的表空間
- expdp/impdp來解決exp/imp出現的錯誤並匯入指定表空間
- DB CONTROL中表空間監控的SQLSQL
- imp/EXP 表空間轉換問題
- 解決Oracle臨時表空間佔滿的問題Oracle
- Oracle imp 匯入資料到另一個表空間Oracle
- 解決FRA空間滿的問題
- oracle的臨時表空間解決問題的步驟Oracle
- db2解決load後系統空間不足問題DB2
- 【實驗】重建臨時表空間解決臨時表空間過大問題
- swap空間不足問題解決
- 臨時表空間ORA-1652問題解決
- 轉:Oracle 臨時表空間過大問題解決Oracle
- exp/imp匯出匯入工具的使用
- 包含OLAP元件SCHEMA使用imp匯入碰到嚴重效能問題元件
- oracle的imp報表空間不存在的解決Oracle
- 【UNDO】使用重建UNDO表空間方法解決UNDO表空間過大問題
- oracle的臨時表空間寫滿磁碟空間,解決改問題的具體步驟Oracle
- 【EXP/IMP】使用EXP /IMP工具“模糊”匯出和匯入
- Oracle exp/imp匯出匯入工具的使用Oracle
- 解決Mysql匯入亂碼問題MySql
- Oracle db_recovery_file_dest空間不足報ora-00257問題解決Oracle
- 【問題解決】使用YYYY-MM-dd時間轉換問題
- 【實驗】RESIZE方法解決臨時表空間過大問題
- DB2匯入資料遇到的問題DB2
- oracle imp字符集問題的解決Oracle
- 【imp】使用imp工具遷移資料時迂迴地排除特定表的匯入
- exp/imp匯入匯出版本問題和ORA-6550報錯
- 解決MongoDB儲存時間時差的問題MongoDB
- C#解決一個奇怪的,名稱空間“XXX”中不存在型別或名稱空間名稱“xxx”的問題C#型別
- imp工具匯入整個資料庫出現的問題資料庫
- PHP名稱空間(Namespace)的使用詳解PHPnamespace
- 一次ASM空間滿了的問題解決ASM
- imp之選項resumable匯入及insert插入資料因空間tablespace不足暫時掛起
- 為什麼問題空間與解決方案空間如此重要? - Nikhil Gupta
- 解決Oracle 11g空表不能exp匯出的問題Oracle
- EXP匯出資料檔名稱重複問題的解決