我只想基于数据库中的某些数据从数据库中转出一些数据。说我有一个客户表和一个订单表。订单具有客户外键。订单是由许多订单行(自己的表)构建而成的,而订单行本身又具有项目(自己的表)。每个都通过FK链接。
为了从该数据库中提取测试数据,我想以一种可以处理它的方式来获取数据,比如说5个订单。数据应包含我在应用程序中使用这些订单所需的所有内容(例如客户,物料,订单行)。我只想根据我想要的订单指定一些条件。
如果确实重要,则环境为:
JBoss上的JavaEE5
冬眠
甲骨文11g
我不反对使用任何使我能够以简单方式获取此数据的语言或工具。
更新:我发现以下question处理类似的问题。
最佳答案
这是一个好问题。
甲骨文在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'
等等 ...
这不是一个可靠的解决方案,它与核心表很少且约束简单的架构兼容。