代码之家  ›  专栏  ›  技术社区  ›  The Archetypal Paul

将带有分区表的dmp导入oraclexe

  •  0
  • The Archetypal Paul  · 技术社区  · 14 年前

    4 回复  |  直到 14 年前
        1
  •  2
  •   raphael hexacyanide    8 年前

    1. 使用impdp SQLFILE=Create\u Non\u Partitioned\u Tables.sql EXCLUDE=STATISTICS
    2. 编辑 Create_Non_Partitioned_Tables.sql CREATE
    3. 编辑 Create_Indexes_Constraints.sql 创建 查询。
    4. 创建非分区表。
    5. impdp CONTENT=DATA_ONLY
    6. 创建索引\u Constraints.sql
        2
  •  2
  •   Gary Myers    14 年前

    如果您在ROWS=N的情况下尝试导入,您将得到一个错误报告“ORA-00439:featurenotenabled:Partitioning”,但是您还将得到一个失败语句的转储。

    它是用双引号包装的75个字符,但是这是你应该能够用文本编辑器处理的(我喜欢PSPad,它有一个列选择模式,可以很容易地去掉每行开头和结尾的引号,再加上一个连接行函数,把它粘在一起)。

    您还可以使用dbms\u metadata.get\u ddl从源中提取ddl。

    使用这两种方法中的任何一种,在XE中运行分区子句之前,都需要编辑staments来删除它们。

    创建表abc作为SELECT*FROM realuser.abc,其中1=2;

    您将拥有一堆具有适当结构但没有分区的空表,可以对它们进行导出,导入到XE中,然后如果需要行的话再进行另一次导入。

        3
  •  1
  •   Jonathan Leffler vy32    12 年前

    oracle11g以后的版本支持通过合并EXPDP中的分区来导出表。请参考以下选项: PARTITION_OPTIONS 使用expdp实用程序导出时。

    Oracle Data Pump 10g .

        4
  •  0
  •   MichaelN    14 年前

    使用“indexfile”选项获取要导入的表的表和索引创建文件。修改该文件以提供不带分区的table create语句。运行creation命令在要导入的数据库中预创建表。然后imp使用“ignore=y”,它应该导入到precreate表中,而不是由于create语句而出错。