一直以來,我都認為只要指定使用者的預設表空間,向該使用者匯入資料時,會自動進入到預設表空間。後來發現從
system
匯出的dmp
檔案在匯入時,即使指定新使用者的預設表空間,還是要往
system
表空間中導資料。
上網搜了一下,還是有解決方法的,常見的方法如下:
sql> create user myhuang identified by myhuang default tablespace myhuang;
sql> grant resource,connect to myhuang;
sql> grant dba to myhuang;//
賦dba許可權
sql> revoke unlimited tablespace from myhuang;//
撤銷此許可權
sql> alter user myhuang quota 0 on system;//
將使用者在
system
表空間的配額置為0
sql> alter user myhuang quota unlimited on myhuang;//
設定在使用者在
myhuang
表空間配額不受限。
經過上述設定後,就可以用
imp匯入資料,資料將會進入指定的
myhuang
表空間:
c:/documents and settings/myhuang>imp system/123456@vdb fromuser=lnxh tous
er=myhuang file=g:/myhuang/lnxh.dmp ignore=y grants=n
順便說兩個小問題: (
1)imp-00003:
遇到oracle
錯誤1658
ora-01658:
無法為表空間
myhuang
中的段建立
initial 區
通常這個問題可以通過
resize
增加表空間資料檔案大小來解決。
(2)刪除表空間
sql> drop tablespace myhuang including contents and datafiles; 在
10g中實驗,
drop
表空間之後,仍然需要手動去刪除資料檔案。
//2008-08-24補充————————————————————————
另一種比較好的方法:
create tablespace datafile 『』 size 500m autoextend on next 10m;
create user identified by default tablespace quota unlimited on ;
grant connect,imp_full_database to ;
imp /@ fromuser= touser= file= ignore=y tablespaces=;
此方法不需要授予新使用者dba許可權。
此方法的存在的問題是:可能導致包含blob、clob欄位的表匯入失敗,這種情況下可以先用sql指令碼將表結構建立起來,再匯入相應的資料。
IMP資料到指定的表空間
一直以來,我都認為只要指定使用者的預設表空間,向該使用者匯入資料時,會自動進入到預設表空間。後來發現從system匯出的dmp檔案在匯入時,即使指定新使用者的預設表空間,還是要往system表空間中導資料。上網搜了一下,還是有解決方法的,常見的方法如下 create user myhuang ide...
imp匯入到指定表空間
sql create user myhuang identified by myhuang default tablespace myhuang 先建立乙個使用者 sql grant resource,connect to myhuang sql grant dba to myhuang 賦 dba...
資料庫基礎系列之七 IMP資料到指定的表空間
一直以來,我都認為只要指定使用者的預設表空間,向該使用者匯入資料時,會自動進入到預設表空間。後來發現從 system 匯出的dmp 檔案在匯入時,即使指定新使用者的預設表空間,還是要往 system 表空間中導資料。上網搜了一下,還是有解決方法的,常見的方法如下 sql create user my...