如题
为了测试简单我把表空间名和用户名都设置为GF了grant connect,resource to GF;
grant dba to GF;
revoke unlimited tablespace from GF;
alter user GF quota 0 on users;
alter user GF quota unlimited on GF;例如
原数据库表空间为A,用户为A
现在表空间为GF,用户为GF,现在有Clob字段的表都无法导入到新的表空间。其他表正常。
另外所有的自定义类型Type无法导入到新用户GF上面。ORA-02304: 无效的对象标识符文字
IMP-00017: 由于 ORACLE 错误 2304, 以下语句失败:
 "CREATE TYPE "略
两个问题:
1.Clob不同表空间导入
2.Type不同用户导入
比较着急,没有百度到,百度到一些都只有提问,没有答案。

解决方案 »

  1.   

    1.如果数据库间可以互联,可以试试通过copy命令解决。
    2.先把用到的type,用导入用户创建一遍。
      

  2.   

    不太了解oracle的一些特性,
    copy命令 怎么用,可否详细说下,或者给个可以百度的关键词
    2.可以考虑,我想知道什么原因。谢谢回复.
      

  3.   

    对于clob不同表空间的导入,看了下,估计copy也不行,可以通过:
    imp ..... indexfile=xxx.sql ...的方法把ddl的语句得到,
    然后修改xxx.sql中的关于clob的表空间制定的语句成目前的gf表空间,
    执行xxx.sql;
    最后再imp 用上ignore=y的参数。
      

  4.   

    直接改dmp表空间行不行??有这么麻烦,汗。
      

  5.   

    经搜索并测试:1.Clob不同表空间导入 
    ==>有clob字段的表不能改表空间. 只有自已先建好表(建时指定表空间),然后再imp. 表多的话,用工具来生成建表语句(e.g.: pl/sql developer)
    2.Type不同用户导入 
    有type的,也是要自已运行代码创建的.
    总结:如果exp时有clob或自定的type,需要自已先在目标schema下建好表,之后再imp
      

  6.   

    呵呵,我一般复杂的,都是自己写程序转移。 反正就一个字段而已,很快就搞定了。写个jdbc,分别链接2个,用二进制流进行数据传输就行了!
      

  7.   

    谢谢各位,楼下继续,呵呵。我oracle太菜,估计dba来了就轻松搞定了。今天上午见了个dba写命令和我写
    helloworld速度差不多。
      

  8.   

    1.使用同义词(主要是表,自定义类型Type可以拿过来重新创建编译一下);
    2.授权。
    参考:http://sourcecode.cangzhuo.com/Code/Oracle/System-Tables/GetuserSYNONYMS.htm和 
    http://www.cnetnews.com.cn/2008/0904/1105796.shtml
    因a和gf均在本地,无需db_link。
      

  9.   

    路过的帮个忙,我记得看有人写过oracle里面有个函数能够将
    clob转换为String,假如我的clob里面就是普通的字符串的话,不知道我是不是记错了。有知道的,不妨告诉小弟。 
    我想在sql中insert clob对象,数据库编程,不是在java等程序中。不知道怎么写。
      

  10.   

    谢谢,我平时用dblink查询后发现pl/sql上面的事物提交按钮会显示待提交的状态,
    不知道为什么,难道是dblink有缓存吗?
    能顺路帮小弟解惑否。
      

  11.   


    我习惯用dblink,因为测试库和开发库没在一个服务器上。
    可以根据实际数据量做分步的插入。