我要expdp用导出schema的方式导出某个schema下的所有对象,对象存在在不同的表与表空间里,目标端是一个空库,我得查找到源端导出文件都存在在哪些表与表空间里,并且根据查询的结果在目标端建立相应的表与表空间。
该脚本该如何编写?schema脚本数据泵

解决方案 »

  1.   

    --1.按schema导出后,你不需要新建立表等对象,但要建立tablesapce
    --2.根据schema名称,得到其下对象所使用的表空间,进一步获取建立表空间的参考脚本
    SELECT to_char(dbms_metadata.get_ddl('TABLESPACE', tablespace_name))
      FROM (SELECT DISTINCT T.tablespace_name
              FROM Dba_Segments t
             WHERE t.owner = '大写schema名称');
      

  2.   

    打算用什么工具调用?  按 1 楼的取出后 在 命令行 impdp/expdp 直接导 不行吗?
      

  3.   


    我得先创建表空间啊
    还有Dba_Segments这个表是什么啊
      

  4.   

    Dba_Segments是一个系统视图
    通过该语句可以得create tablespace ...的语句,可稍作修改(如数据文件路径)就可以在sql执行环境中执行。先在目标空数据库创建表空间后,再用impdp导入至于一些基础的东西,先买本基础的书系统学习一下。
      

  5.   


    我最后决定直接取出表空间名和大小 当个变量传到创建语句里了 没法用dblink 我也没法把语句直接传到过去 不过谢谢您了