要将数据导入到其他用户下,在进行imp 时要使用 FROMUSER 和 TOUSER 这两个参数
FROMUSER: 指定对象的原有属主 TOUSER:指定对象的新属主,即要导入的用户 如导入原scott 用户下的dept 表和emp 表到 yang 用户下
1) C:\Documents and Settings\Administrator>exp scott/yang@orcl file=f:\dump\scott.
dmp log=f:\dump\scott.log tables=(emp,dept)
Export: Release 11.1.0.6.0 - Production on 星期日 8月 15 22:54:27 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的表通过常规路径...
. . 正在导出表 EMP导出了 14 行
. . 正在导出表 DEPT导出了 4 行
成功终止导出, 没有出现警告。
在YANG用户下 ,查看导入结果:
SQL> show user
USER 为 "YANG"
SQL> select username,default_tablespace from user_users;
USERNAME DEFAULT_TABLESPACE
-------------------- -------------------------
YANG EXAMPLE ---yang 的默认表空间
SQL> select table_name,tablespace_name from user_tables;
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TEST EXAMPLE
CLOB_CONTENT EXAMPLE
EMP USERS --导入的对象所属表空间
DEPT USERS
2)什么原因呢?
imp 时在导入数据时会首先创建表结构,这个表结构来自exp 导出的数据库,其中包含该对象在源端数据库中 的存储属性,(比如这个emp表 其属性说明它存在users 表空间里) 在导入到目标数据库中时仍然会寻找并存储到那个表空间,如果找到,就导入到那个表空间里!如果找不到,就报错,你猜呢,当然会报错了....
3)解决办法:
首先显示的授予用户指定的表空间 的存储权限,我的yang 表空间是example ,然后收回UNLIMIT tablespace 权限(UNLIMIT tablespace:拥有操作所有表空间的权限)
SQL> conn system/yang@orcl as sysdba
已连接。
SQL> alter user yang quota unlimited on example;
用户已更改。
SQL> revoke unlimited tablespace from yang;
撤销成功。
4) 再次执行导入,(先将emp 和dept 删除掉!)
SQL> conn yang/yang@orcl
已连接。
SQL> drop table emp purge;----为了再次导入,当然也可以使用ignore =y 参数
表已删除。
SQL> drop table dept purge;
表已删除。
SQL> set timing on
SQL> select username,default_tablespace from user_users;
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
YANG EXAMPLE
已用时间: 00: 00: 00.01
SQL> select table_name,tablespace_name from user_tables;
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TEST EXAMPLE
CLOB_CONTENT EXAMPLE
EMP EXAMPLE -这次的结果符合期望
DEPT EXAMPLE
已用时间: 00: 00: 00.18