缺省情況下,導(dǎo)入試圖在與導(dǎo)出相同的表空間中創(chuàng)建對象。如果用戶不具有那個表空間的權(quán)限,或者那個表空間不存在時,Oracle在用戶帳戶的缺省表空間中創(chuàng)建數(shù)據(jù)庫對象。這些特性可以用于使用導(dǎo)出與導(dǎo)入在表空間之間移動數(shù)據(jù)庫對象。要為USER_A將TABLESPACE_A的所有對象移動到TABLESPACE_B,應(yīng)遵循以下步驟:
1 為USER_A導(dǎo)出TABLESPACE_A中的所有對象。
2 執(zhí)行REVOKE UNLIMITED TABLESPACE ON TABLESPACE_A FROM USER_A;以收回任何授予用戶帳戶的無限制表空間權(quán)限。
3 執(zhí)行ALTER USER USER_A QUOTA 0 ON TABLESPACE_A;以使USER_A帳戶不能在TABLESPACE_A上創(chuàng)建任何對象。
4 刪除TABLESPACE_A中USER_A擁有的所有對象。
5 執(zhí)行ALTER USER USER_A DEFAULT TABLESPACE TABLESPACE_B;以使TABLESPACE_B成為USER_A用戶帳戶的缺省表空間。Oracle試圖將對象導(dǎo)入TABLESPACE_A,因為這些對象是從TABLESPACE_A導(dǎo)出的。注意用戶不具有TABLESPACE_A上的配額。然后將查看用戶的缺省表空間。在Oracle可以將數(shù)據(jù)導(dǎo)入TABLESPACE_B之前,必須給予USER_A用戶該表空間上足夠大的配額,如下步驟所示。
6 執(zhí)行ALTER USER USER_A QUOTA UNLIMITED ON TABLESPACE_B;
7 導(dǎo)入被導(dǎo)出的數(shù)據(jù)庫對象。缺省情況下,導(dǎo)入工具試圖將它們導(dǎo)入到TABLESPACE_A中,然而,因為用戶不具有這個表空間的配額,所以所有的對象將被創(chuàng)建在USER_A的缺省表空間TABLESPACE_B中。
Top
REVOKE UNLIMITED TABLESPACE ON itmpspace FROM itmp ;
ALTER USER itmp QUOTA 0 ON itmpspace ;
ALTER USER itmp DEFAULT TABLESPACE idmp;
ALTER USER itmp DEFAULT TABLESPACE idmp;
ALTER USER itmp QUOTA UNLIMITED ON idmp;