Oracle imp匯入資料指定表空間

2021-08-30 21:00:40 字數 1610 閱讀 6558

imp匯入資料指定表空間,大致有以下幾種方法可以:

1. 有乙個簡單的方法,適用於資料比較少的情況:直接使用ultraedit打方dmp檔案,預設是16進製制,切換成文字模式,將裡面的:tablespace "ts1"全部替換成tablespace "ts2",然後再匯入,不用加什麼tablespaces=ts2之類的引數即可,當然加了也無所所謂。

c:\>imp user2/user2 log=c:\plsimp.log file=d:\database\user1.dmp fromuser=user1 touser=user2 ignore=yes tablespaces=ts2

不過有個缺點,如果dmp檔案有幾百m甚至幾g,嘿嘿嘿嘿,不知道ultraedit有啥反應?

2. 還有另外一種比較好的方法。基本思路都是先從 user1匯出表結構(dmp或者sql指令碼),然後在user2使用者下建立空的資料庫表(如果是dmp,則參見方法1;如果是sql指令碼,則稍作修改後以user2使用者執行即可),再將包括資料的dmp匯入,注意要設ignore=y,並指定fromuser和touser。具體實現方法為:

(1)先用工具匯出user1的表結構(不要匯出check和fk,特別是fk!),toad和 pl/sql都有此功能。pl/sql developer匯出表結構:tools-->export user objects(匯出使用者物件) -->選擇要匯出的表(包括sequence等)-->.sql檔案,匯出的都為sql檔案。或者使用imp的indexfile選項生成表結構的sql指令碼。

(2)在user2使用者下建立相同的表結構

(3)匯入完整的資料

ps:

pl/sql developer工具操作步驟:

(1)匯出表結構:

tools-->export user objects(匯出使用者物件) -->選擇要匯出的表(包括sequence等)-->.sql檔案,匯出的都為sql檔案

(這一步也可以匯出乙個只包括表結構的dmp檔案。)

(2)匯出表資料:

tools-->export tables-->選擇表,選擇sql inserts-->.sql檔案

(這一步也可以匯出乙個包括表結構和資料或者只有資料沒有表結構圖的dmp檔案。)

(3)匯入表結構:

執行剛剛匯出的sql檔案,記住要刪掉table前的使用者名稱,比如以前這錶名為sys.tablename,必須刪除sys

(如果是只包括表結構的dmp檔案,則使用ultraedit修改表空間,再匯入。如方法1)

(4)匯入表資料:

執行剛剛匯出的sql檔案

(如果是dmp檔案,則直接匯入即可,注意要設ignore=y,並指定fromuser和touser。)

imp命令操作步驟:

首先:exp user/pw file=file.dmp owner=youruser1

然後:imp user/pw file=file.dmp indexfile=***x.sql fromuser=youruser1 touser=youruser2

最後:imp user/pw file=file.dmp fromuser=youruser1 touser=youruser2 ignore=y

oracle imp 匯入資料

首先,從乙個使用者下匯出資料 exp sys sys orcl as sysdba file d tmp.dmp tables tmpuser.tb1,tmpuser.tbs 然後將匯出的資料匯入另乙個使用者tmpuser2 c documents and settings administrato...

Oracle imp命令匯入資料到指定表空間

找了乙個幾百萬行資料的庫,準備匯入的本地oracle中 imp sam lee file d agent.dmp fromuser system touser sam sam使用者的預設表空間是sam,但是資料卻匯入到了system表空間。google了一下,應該這樣做 1.收回unlimited ...

oracle imp導入庫到指定表空間

1.建立表空間 create tablespace example tablespace datafile e dbf size 10m reuse autoextend on next 1m maxsize unlimited 2.建立使用者,指定表空間,臨時表空間 create user use...