Chinaunix首页 | 论坛 | 博客
  • 博客访问: 259598
  • 博文数量: 70
  • 博客积分: 2120
  • 博客等级: 大尉
  • 技术积分: 820
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-16 10:52
文章分类

全部博文(70)

文章存档

2012年(2)

2011年(53)

2010年(6)

2009年(1)

2008年(8)

我的朋友

分类: Oracle

2011-11-21 10:59:48

FLSMXZ2006KF表在源数据库中的EASYCON用户下的LSMX_TBS02表空间中,现在需要把该表迁移到目标库的TEST用户下的INDX_TBS表空间中,在数据迁移时,在导入后发现数据被导入到了原LSMX_TBS表空间。这是由于TEST用户的默认表空间是LSMX_TBS表空间,并且在所有表空间中具有unlimited tablespace 权限,就会导入到原用户的表空间。

收TEST回用户的unlimited tablespace 权限。

SQL> revoke unlimited tablesapce from test;

SQL>alter user test quota 0 on LSMX_TBS;

SQL>alter user TEST quota unlimited on INDX_TBS;
 
首先,收回目的用户的"UNLIMITEDTABLESPACE"权限:

revoke unlimited tablespace from username;

其次,取消目的用户在原导出中的配额,这样才能迫使把导入到用户的默认中去。

然后,将希望导入的设为目的用户的默认,并添加配额。

最后,执行。


       如果还是碰到如下错误,那是由于创建对象时强制指定非缺省表空间,这是我们要用到IMP工具的一个INDEXFILE参数。指定这个参数后,系统将创建表和索引等语句写到一个文件,通过编辑这个文件,就可以得到对象的创建语句。将表空间修改为希望的目标表空间,然后用iSql*plus 执行此脚本到要导入的用户中。再次执行IMP命令,后面加上IGNORE=Y 这个参数,忽略创建的错误。

阅读(961) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~