【问题标题】:Export Data to Flat File将数据导出到平面文件
【发布时间】:2010-06-27 22:47:35
【问题描述】:

我有一个新手问题-我在网上搜索了很长时间,但找不到任何答案。

我了解所有包、过程和存储的程序单元都存储在系统表空间或 sysaux 表空间中。我的要求是将一些模式从源数据库复制到目标数据库中。 exp 模式并将它们带入目标数据库是否足够?这是否也会带来存储的程序单元。或者我需要导出系统/系统模式吗?我导出了一个模式并在 unix 中执行了以下操作。

strings expdat.dmp|grep -i "package" 但这什么也不返回。我还打开了 exp 文件并搜索了包,但无济于事。所以我创建了一个 parfile (tables=somepackagename) 但 exp 抱怨找不到对象。

有什么想法吗?

【问题讨论】:

    标签: oracle


    【解决方案1】:

    只要过程/功能归您导出的用户所有,它就应该在导出中。如果您没有找到“包”,那可能是因为您导出的用户没有托管任何包(但可能只有独立的过程和/或函数)。 根据您的 Oracle 版本,您可能有 expdp 和选项 include。

    尼古拉斯。

    【讨论】:

      【解决方案2】:

      是的,包、过程、函数等的代码存储在 SYSTEM 表空间中,但是当您导出架构时,Oracle 并不关心这一点 - 它会捕获在新数据库中重新创建对象所需的 DDL .

      正如 N. Gasparotto 所提到的,请确保您导出的架构实际上拥有感兴趣的对象。通过使用具有目录权限的帐户连接到源数据库并发出以下查询,您可以获得对象的快速摘要:

      select owner, object_type, count(*)
      from dba_objects
      group by owner, object_type
      ;
      

      (例如,您可能只看到感兴趣的架构的同义词,因此它实际上并不拥有包)

      较新的 expdp/impdp 实用程序具有更多功能,但缺点是需要访问数据库主机文件系统和创建 Oracle 目录对象的权限。 exp/imp 应该适合您需要做的事情。

      【讨论】:

        猜你喜欢
        • 2011-08-22
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 2021-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多