两个测试数据存储过程

Posted 一杯铁观音

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个测试数据存储过程相关的知识,希望对你有一定的参考价值。

今日:V_TYPES = 1

昨日:V_TYPES = 2

一周:V_TYPES = 3

------------------------------------   //注释里的数字根据实际情况,之前的数字

 

create or replace PROCEDURE "PD_TEST_YANJING2" (V_TYPES in varchar2, cursor_a out sys_refcursor)
as


/* 编写人:YANJING ,FOR TESTING

*/


V_DATE1 DATE;
V_DATE2 DATE;
v_guid varchar(50);
begin

SELECT SYS_GUID() into v_guid FROM DUAL; --获得当前用户guid

if V_TYPES = ‘1‘ then -- 如果时间类型是1, 在临时表中插入15分钟粒度的数据。
SELECT trunc(SYSDATE),trunc(sysdate,‘hh24‘) into V_DATE1,V_DATE2 FROM DUAL;

loop
exit when V_DATE1 >= V_DATE2; --时间轴传递的结束时间往前推一个粒度作为结束时间
insert into temp_time_list(stat_time,guid) values(V_DATE1,v_guid);
V_DATE1 := V_DATE1 + 1/24;
end loop;

elsif V_TYPES = ‘2‘ then -- 如果时间类型是2, 在临时表中插入60分钟粒度的数据。
SELECT trunc(SYSDATE)-1,trunc(sysdate) into V_DATE1,V_DATE2 FROM DUAL;

loop
exit when V_DATE1 >= V_DATE2; --时间轴传递的结束时间往前推一个粒度作为结束时间
insert into temp_time_list(stat_time,guid) values(V_DATE1,v_guid);
V_DATE1 := V_DATE1 + 1/24;
end loop;
else -- 如果时间类型是3, 在临时表中插入天时间粒度的数据。
SELECT trunc(SYSDATE)-7,trunc(sysdate) into V_DATE1,V_DATE2 FROM DUAL;

loop
exit when V_DATE1 >= V_DATE2; --时间轴传递的结束时间往前推一个粒度作为结束时间
insert into temp_time_list(stat_time,guid) values(V_DATE1,v_guid);
V_DATE1 := V_DATE1 + 1;
end loop;
end if;
if V_TYPES = ‘1‘ then -- 查询15分钟表,查询全部数据,全互联单位。

open cursor_a for

select to_char(t.stat_time,‘hh24:mi‘) as name, round(dbms_random.value *100,0) as value ,‘正面‘ as category
from temp_time_list t
where t.guid = v_guid
union all
select to_char(t.stat_time,‘hh24:mi‘) as name, round(dbms_random.value *100,0) as value ,‘中立‘ as category
from temp_time_list t
where t.guid = v_guid
union all

select to_char(t.stat_time,‘hh24:mi‘) as name, round(dbms_random.value *100,0) as value ,‘负面‘ as category
from temp_time_list t
where t.guid = v_guid;

 

 

elsif V_TYPES = ‘2‘ then -- 查询60分钟表,查询全部数据, 具体的互联单位。 sql 中 拼接运营商 ,但是不拼接 is_wireless_flag。
open cursor_a for

select to_char(t.stat_time,‘hh24:mi‘) as name, round(dbms_random.value *100,0) as value ,‘正面‘ as category
from temp_time_list t
where t.guid = v_guid
union all
select to_char(t.stat_time,‘hh24:mi‘) as name, round(dbms_random.value *100,0) as value ,‘中立‘ as category
from temp_time_list t
where t.guid = v_guid
union all

select to_char(t.stat_time,‘hh24:mi‘) as name, round(dbms_random.value *100,0) as value ,‘负面‘ as category
from temp_time_list t
where t.guid = v_guid;

else -- 查询24小时表,查询全部数据, 具体的互联单位。 sql 中 拼接运营商 ,但是不拼接 is_wireless_flag。
open cursor_a for

select to_char(t.stat_time,‘MM-DD‘) as name, round(dbms_random.value *100,0) as value ,‘正面‘ as category
from temp_time_list t
where t.guid = v_guid
union all
select to_char(t.stat_time,‘MM-DD‘) as name, round(dbms_random.value *100,0) as value ,‘中立‘ as category
from temp_time_list t
where t.guid = v_guid

union all
select to_char(t.stat_time,‘MM-DD‘) as name, round(dbms_random.value *100,0) as value ,‘负面‘ as category
from temp_time_list t
where t.guid = v_guid;


end if; -- 结束
end;

 

--------------------------------------------------

create or replace PROCEDURE "PD_TEST_YANJING" (V_TYPES in varchar2, cursor_a out sys_refcursor)
as


/* 编写人:YANJING ,FOR TESTING

*/


V_DATE1 DATE;
V_DATE2 DATE;
v_guid varchar(50);
begin

SELECT SYS_GUID() into v_guid FROM DUAL; --获得当前用户guid

if V_TYPES = ‘1‘ then -- 如果时间类型是1, 在临时表中插入15分钟粒度的数据。
SELECT trunc(SYSDATE),trunc(sysdate,‘hh24‘) into V_DATE1,V_DATE2 FROM DUAL;

loop
exit when V_DATE1 >= V_DATE2; --时间轴传递的结束时间往前推一个粒度作为结束时间
insert into temp_time_list(stat_time,guid) values(V_DATE1,v_guid);
V_DATE1 := V_DATE1 + 1/24;
end loop;

elsif V_TYPES = ‘2‘ then -- 如果时间类型是2, 在临时表中插入60分钟粒度的数据。
SELECT trunc(SYSDATE)-1,trunc(sysdate) into V_DATE1,V_DATE2 FROM DUAL;

loop
exit when V_DATE1 >= V_DATE2; --时间轴传递的结束时间往前推一个粒度作为结束时间
insert into temp_time_list(stat_time,guid) values(V_DATE1,v_guid);
V_DATE1 := V_DATE1 + 1/24;
end loop;
else -- 如果时间类型是3, 在临时表中插入天时间粒度的数据。
SELECT trunc(SYSDATE)-7,trunc(sysdate) into V_DATE1,V_DATE2 FROM DUAL;

loop
exit when V_DATE1 >= V_DATE2; --时间轴传递的结束时间往前推一个粒度作为结束时间
insert into temp_time_list(stat_time,guid) values(V_DATE1,v_guid);
V_DATE1 := V_DATE1 + 1;
end loop;
end if;
if V_TYPES = ‘1‘ then -- 查询15分钟表,查询全部数据,全互联单位。

open cursor_a for

select to_char(t.stat_time,‘hh24:mi‘) as name, round(dbms_random.value *100,0) as value ,‘网站‘ as category
from temp_time_list t
where t.guid = v_guid
union all
select to_char(t.stat_time,‘hh24:mi‘) as name, round(dbms_random.value *100,0) as value ,‘论坛‘ as category
from temp_time_list t
where t.guid = v_guid;

 

 

elsif V_TYPES = ‘2‘ then -- 查询60分钟表,查询全部数据, 具体的互联单位。 sql 中 拼接运营商 ,但是不拼接 is_wireless_flag。
open cursor_a for

select to_char(t.stat_time,‘hh24:mi‘) as name, round(dbms_random.value *100,0) as value ,‘网站‘ as category
from temp_time_list t
where t.guid = v_guid
union all
select to_char(t.stat_time,‘hh24:mi‘) as name, round(dbms_random.value *100,0) as value ,‘论坛‘ as category
from temp_time_list t
where t.guid = v_guid;

else -- 查询24小时表,查询全部数据, 具体的互联单位。 sql 中 拼接运营商 ,但是不拼接 is_wireless_flag。
open cursor_a for

select to_char(t.stat_time,‘MM-DD‘) as name, round(dbms_random.value *100,0) as value ,‘网站‘ as category
from temp_time_list t
where t.guid = v_guid
union all
select to_char(t.stat_time,‘MM-DD‘) as name, round(dbms_random.value *100,0) as value ,‘论坛‘ as category
from temp_time_list t
where t.guid = v_guid;


end if; -- 结束
end;

以上是关于两个测试数据存储过程的主要内容,如果未能解决你的问题,请参考以下文章

mysql写存储过程对单表插入测试数据,出问题

单元测试和存储过程

SQL Server的存储过程怎么写?

利用存储过程造测试数据

利用存储过程造测试数据

mysql 创建存储过程插入测试数据