oracle PLSQL程序造数据笔记

Posted David Xu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle PLSQL程序造数据笔记相关的知识,希望对你有一定的参考价值。

1.造假数据:

 1 declare
 2   type t_website_id is table of number(10);
 3   type t_website_name is table of varchar2(20);
 4   type t_area_id_tb is table of varchar2(5);
 5   type t_area_name_tb is table of varchar2(16);
 6   website_id  t_website_id :=t_website_id(1001,1002,1003,1004,1005,1006,1007,1008,1009,1010);
 7   website_name  t_website_name :=t_website_name(LOFT,京东,网易,知乎,搜狐,新浪,淘宝,腾讯,百度,人人);
 8   area_id_tb        t_area_id_tb := t_area_id_tb(55,551,553,559,556,562,564,554,561,557,5581);
 9   area_name_tb  t_area_name_tb := t_area_name_tb(安徽,合肥,芜湖,黄山,安庆,铜陵,六安,淮南,淮北,宿州,亳州);
10   
11 begin
12   delete from TEST_WEBSITE_AREA_H;
13   for i in 0..23 loop
14      for j in area_id_tb.first .. area_id_tb.last loop
15         for k in website_id.FIRST .. website_id.LAST loop        
16             insert into TEST_WEBSITE_AREA_H
17             (
18               time_id,
19               area_id,
20               area_name,
21               website_id,
22               website_name,
23               fst_screen_duration,
24               total_flow,
25               click_traffic
26             )
27             values(
28                to_char(sysdate,yyyyMMdd)||lpad(i,2,0)||00,
29                area_id_tb(j),
30                area_name_tb(j),
31                website_id(k),
32                website_name(k),
33                trunc(dbms_random.value(100, 800)),
34                round(dbms_random.value(1024, 9999999),2),
35                trunc(dbms_random.value(5000000,99999999))
36             );
37         end loop;
38      end loop;
39   end loop;
40 end;

 2.随机取数据:

1 SELECT * FROM (
2     SELECT ename, job
3         FROM emp
4      ORDER BY DBMS_RANDOM.VALUE()
5   ) WHERE ROWNUM <= 5;

3.使用connect by 造数据:

 1 create table t_test_random as
 2 select level L1,
 3  substr(abs(dbms_random.random), 2, 8) L2,
 4  trunc(dbms_random.value(1, 101)) L3,
 5  (2 * trunc(dbms_random.value(1, 50)) - 1) L4,
 6  dbms_random.string(a, 10) L5,
 7  dbms_random.string(x, 10) L6,
 8  to_date(trunc(dbms_random.value(to_number(to_char(to_date(2012-10-1,
 9  yyyy-mm-dd),
10  j)),
11  to_number(to_char(to_date(2012-10-8,
12  yyyy-mm-dd),
13  j)))),
14  j) +
15  dbms_random.value(9,18)/24 L7,
16  sysdate - dbms_random.value(0,30)/24/60 L8,
17  trunc(sysdate) - trunc(dbms_random.value(1,11)) L9
18  from dual
19  where level >= 100
20 connect by level <= 1000000;

 

以上是关于oracle PLSQL程序造数据笔记的主要内容,如果未能解决你的问题,请参考以下文章

PLSQL中的Data Generator使用笔记(oracle数据生成工具)

PLSQL中的Data Generator使用笔记(oracle数据生成工具)

PLSQL中的Data Generator使用笔记(oracle数据生成工具)

PLSQL Develope连接oracle数据库配置

Oracle-常用数据库对象笔记(片段)

oracle中plsql与sqlplus的区别是啥啊?它们分别用来做啥啊?