【问题标题】:How to create a partial database dump based on a specific set of data?如何根据一组特定的数据创建部分数据库转储?
【发布时间】:2013-07-05 17:30:30
【问题描述】:

我想仅根据数据库中的一些数据从数据库中转储一些数据。假设我有一个客户表和一个订单表。订单有一个外键给客户。订单由许多订单行(自己的表)构建而成,而这些订单行又具有项目(自己的表)。每个都通过 FK 链接。

为了从这个数据库中提取测试数据,我想以我可以处理的方式获取数据,比如 5 个订单。数据应该包含我在应用程序中使用这些订单所需的一切(例如客户、商品、订单行)。而我只想根据自己想要的订单指定一些条件。

如果确实重要,环境是:

  • JBoss 上的 JavaEE5
  • 休眠
  • Oracle 11g

我不反对使用任何可以让我以简单的方式获取这些数据的语言或工具。

更新:我发现以下question 处理了类似的问题。

【问题讨论】:

    标签: java database oracle language-agnostic export


    【解决方案1】:

    这是个好问题。

    Oracle 在 12c 中发布了 test management pack,我认为它可以解决这个问题 - 我没有深入了解它,但它可能也与 11g 兼容。 Informatica 也有类似的产品。

    如果您不想使用昂贵的解决方案,您可以使用 COPY 命令。 sqlplus COPY 命令的主体类似于旧的exp/imp,但它允许您使用查询导出。

    1.导出查找表。

    2.导出带有过滤器的主(事实)表。

    copy from=user/pass@prod to user/pass@test create big_fact using select * from big_Fact where update_date > '01/01/2013'
    

    3.通过加入基表复制相关表

    copy from=user/pass@prod to user/pass@test create related_table1 using select related_table1.* from related_table1 join big_fact on (join_condition) where big_fact.update_date > '01/01/2013'
    

    等等……

    这不是一个强大的解决方案,它与核心表很少且约束简单的架构兼容。

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 2015-04-11
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 2019-08-14
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      相关资源
      最近更新 更多