首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在oracle 11g中从实源数据库生成测试数据的方法

在oracle 11g中从实源数据库生成测试数据的方法
EN

Stack Overflow用户
提问于 2012-03-24 09:00:53
回答 2查看 1.1K关注 0票数 1

我有生产数据库inOracle 11g -整个架构。我如何使用它来生成维护了关系的测试数据(所有值都被篡改了)(例如,只有字符串值被篡改,而不是Is或数字)。有没有像数据生成器这样的工具来做这件事,或者我们可以很容易地手动做这件事?提前感谢

EN

回答 2

Stack Overflow用户

发布于 2012-04-05 03:44:07

请参见http://docs.oracle.com/cd/B10500_01/appdev.920/a96612/d_obtoo2.htm http://www.oracle.com/us/products/database/data-masking-best-practices-161213.pdf http://test.techwell.com/sites/default/files/articles/XUS304776788file1_0.pdf

票数 0
EN

Stack Overflow用户

发布于 2013-12-18 15:54:58

您可以使用简单的SQL查询来生成数据。例如,考虑下面的查询。

代码语言:javascript
复制
SELECT 'ORACLE' || ROWNUM ID,
       DEPT_CD,
       ACCT_NO,
       TITLE,
       NO_OF_SUBORDN,
       ANNUAL_SALARY,
       CUBICLE_ID,
       DATE_OF_JOINING,
       V_CCY_CODE
  FROM (SELECT TRUNC(DBMS_RANDOM.VALUE(100, 1000)) DEPT_CD,
               TRUNC(DBMS_RANDOM.VALUE(0, 20)) NO_OF_SUBORDN,
               TRUNC(DBMS_RANDOM.VALUE(20000, 200000), 2) ANNUAL_SALARY,
               DBMS_RANDOM.STRING('U', 10) || ' / ' ||
               TRUNC(DBMS_RANDOM.VALUE(100, 1000)) CUBICLE_ID,
               SYSDATE + DBMS_RANDOM.VALUE(-365 * 15, -1) DATE_OF_JOINING
          FROM DUAL
        CONNECT BY LEVEL <= 100) TBL1
  LEFT OUTER JOIN (SELECT DISTINCT V_CCY_CODE
                     FROM DIM_CURRENCY
                    ORDER BY DBMS_RANDOM.VALUE) TBL2 ON 1 = 1
  LEFT OUTER JOIN (SELECT DISTINCT ACCT_NO, TITLE
                     FROM DIM_ACCOUNT
                    ORDER BY DBMS_RANDOM.VALUE) TBL3 ON 1 = 1
ORDER BY DBMS_RANDOM.VALUE;

在此查询中,使用TBL1中的DBMS_RANDOM包生成随机数据。可以使用笛卡尔连接从DIM表或查找表引入数据,如TBL2和TBL3中所示。

注意:将TBL1中的级别保持在最低水平,因为正在与其他表进行笛卡尔连接,因此结果数据集将是巨大的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9848234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档