chen4765654

          ORACLE大數據量生成語句

          為了更好的測試我們的系統在一定數據量下的運行情況,時常需要準備大量的測試數據。如果有靈活的方法可以使用,那就可以事半功倍了。
          以下介紹如何在ORACLE數據庫中進行大數據量的構造方法,數據量大小均為500萬。
          '''基本主鍵列'''
          SELECT LEVEL AS ID
            FROM DUAL
          CONNECT BY LEVEL <= 5000000
          '''基本的單據列'''
          SELECT 'SO20121123' || LPAD(LEVEL, 5, 0) AS ORDER_NO
            FROM DUAL
          CONNECT BY LEVEL <= 5000000;
          '''基本的日期列'''
          SELECT TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE, 'J')),
                                                 TO_NUMBER(TO_CHAR(SYSDATE, 'J')))),
                         'J') + DBMS_RANDOM.VALUE(1, 360000) / 3600 AS ENTRYDATE
            FROM DUAL
          CONNECT BY LEVEL < 5000000;
          '''特定時間范圍內'''
          SELECT TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE - 10, 'J')),
                                                 TO_NUMBER(TO_CHAR(SYSDATE, 'J')))),
                         'J') + DBMS_RANDOM.VALUE(1, 360000) / 3600 / 24 AS ENTRYDATE
            FROM DUAL
          CONNECT BY LEVEL < 5000000;
          '''隨機數據'''
          SELECT DBMS_RANDOM.VALUE FROM DUAL CONNECT BY LEVEL < 5000000;
          '''隨機數據范圍'''
          SELECT TRUNC(DBMS_RANDOM.VALUE(0, 100))
            FROM DUAL
          CONNECT BY LEVEL < 5000000;
          '''隨機字符串'''
          SELECT DBMS_RANDOM.STRING('A', 8) FROM DUAL CONNECT BY LEVEL < 5000000;
          '''復雜組合(訂單)'''
          SELECT 'P-' ||
                 TO_CHAR((TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE - 30,
                                                                            'J')),
                                                          TO_NUMBER(TO_CHAR(SYSDATE,
                                                                            'J')))),
                                  'J') + DBMS_RANDOM.VALUE(1, 360000) / 3600 / 24),
                         'YYMMDD') || '-' ||
                 LPAD(TRUNC(DBMS_RANDOM.VALUE(1, 100)), 5, '0') AS 訂單號,
                 '一般采購' AS 訂單類型,
                 'SO20121123' || LPAD(LEVEL, 4, 0) AS 外部訂單號,
                 'admin' AS 變更人,
                 TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE, 'J')),
                                                 TO_NUMBER(TO_CHAR(SYSDATE, 'J')))),
                         'J') + DBMS_RANDOM.VALUE(1, 360000) / 3600 AS 更新時間
            FROM DUAL
          CONNECT BY LEVEL < 5000000;
          '''加入隨機用戶或者字符'''
          SELECT 'P-' ||
                 TO_CHAR((TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE - 30,
                                                                            'J')),
                                                          TO_NUMBER(TO_CHAR(SYSDATE,
                                                                            'J')))),
                                  'J') + DBMS_RANDOM.VALUE(1, 360000) / 3600 / 24),
                         'YYMMDD') || '-' ||
                 LPAD(TRUNC(DBMS_RANDOM.VALUE(1, 100)), 5, '0') AS 訂單號,
                 '一般采購' AS 訂單類型,
                 CASE TRUNC(DBMS_RANDOM.VALUE(0, 2))
                   WHEN 0 THEN
                    ('SO20121123' || LPAD(LEVEL, 4, 0))
                   ELSE
                    ('')
                 END AS 外部訂單號,
                 CASE TRUNC(DBMS_RANDOM.VALUE(0, 3))
                   WHEN 0 THEN
                    'admin'
                   WHEN 1 THEN
                    'steven'
                   ELSE
                    'joseph'
                 END AS 變更人,
                 TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE, 'J')),
                                                 TO_NUMBER(TO_CHAR(SYSDATE, 'J')))),
                         'J') + DBMS_RANDOM.VALUE(1, 360000) / 3600 AS 更新時間
            FROM DUAL
          CONNECT BY LEVEL < 5000000;

          posted on 2014-09-15 13:50 紫色心情 閱讀(1101) 評論(0)  編輯  收藏 所屬分類: Oracle


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 麻栗坡县| 沙坪坝区| 台南县| 克拉玛依市| 报价| 林西县| 麻阳| 翁源县| 石门县| 厦门市| 若尔盖县| 泗阳县| 平顶山市| 桑植县| 囊谦县| 大化| 安远县| 措美县| 长武县| 金沙县| 改则县| 原阳县| 新龙县| 中阳县| 清涧县| 普兰店市| 十堰市| 沙田区| 民县| 伊吾县| 二手房| 依兰县| 岗巴县| 治多县| 保德县| 东海县| 江门市| 华蓥市| 方正县| 铁力市| 行唐县|