zoukankan      html  css  js  c++  java
  • [转]Oracle用imp导入用户表时选择表空间的问题

    [原文]http://hi.baidu.com/cat_june/blog/item/0573a945fd8ead36879473e4.html

    自己觉得对Oracle还掌握得不错,不过昨天隔壁实验室的同学问了我一个问题让我郁闷了一把。她在一个数据库里把一个用户A的在表空间AA上的表用exp导出到exp.dmp文件中,再把它导入到另一台机器上的数据库里,这时她用的是用户B,默认表空间是BB,但是用imp导入时我们发现表是导入到了B用户下,但是还是存在了AA表空间里面,但是她需要导入到BB里,这时我们又试了好几次,都是这样。才发现自己以前都是复制过来的数据库,没有涉及到更改表空间,于是上网查了查,幸好有好心人有解决方案。

    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

    顺便说两个小问题:

    1IMP-00003: 遇到 ORACLE 错误 1658

    ORA-01658: 无法为表空间 MYHUANG 中的段创建 INITIAL

    通常这个问题可以通过Resize增加表空间数据文件大小来解决。

    2)删除表空间

    SQL> drop tablespace myhuang including contents and datafiles;

     

    [个人补充]

    如遇IMP-00003: ORACLE error 1950 encountered.

    ORA-01950: no privileges on tablespace 'XXXXXXX'

    说明你的表中有BLOB之类的字段,此类表无法导入新的表空间

    网上说9i中此问题没有完美的解决方案,估计只能先建一个同名的表空间,然后把这个表移到新的表空间中

    不知道10g和11g中是怎么样的,没有测试过

  • 相关阅读:
    POJ 1003 解题报告
    POJ 1004 解题报告
    POJ-1002 解题报告
    vi--文本编辑常用快捷键之光标移动
    常用图表工具
    September 05th 2017 Week 36th Tuesday
    September 04th 2017 Week 36th Monday
    September 03rd 2017 Week 36th Sunday
    September 02nd 2017 Week 35th Saturday
    September 01st 2017 Week 35th Friday
  • 原文地址:https://www.cnblogs.com/xclw/p/1627049.html
Copyright © 2011-2022 走看看