今天用到了将Oracle中一个用户下的所有信息导入到另一个机器中的用户下,例如有一台机器中某用户为aa,需要在另一台机器中将aa用户下的所有信息,如表、表空间、索引拷贝到本机的数据库上。首先查看aa用户下的默认表空间,或者根据sysdba用户查看。select username,default_tablespace from user_users; //当前用户 select user,default_tablespace from dba_users; //sysdba查询所有的用户和默认表空间比如现在知道了aa用户的表空间是aatbs;
那么现在在cmd中执行,而不是在sqlplus中或者pl/sql中的SQL>执行exp aa/aa@orcl file=C:aa_bak.dmp full=y //全部导出;然后在另外一个数据库中执行命令如下sqlplus / as sysdba; create tablespace aatbs datafile "c:oracleproduct10.2.0oradataaa_bak.dbf" size 32M autoextend on next 32M maxsize 2048M extent management local; --创建表空间,其中表空间名和刚才查询的表空间名一致 create user aa identified by aa default tablespace aatbs; grant dba to aa; --drop user aa cascade; exit;创建表空间的时候需要注意1.datafile后的文件路径必须为单引号,我用了双引号不好使