Oracle利用游标触发器存储实操[Oracle防范]
本文“Oracle利用游标触发器存储实操[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
假如你在Oracle游标触发器的存储的实际操作中,你对Oracle利用游标触发器的存储历程有不解之处时,你可以通过以下的文章对其的实际利用与功效有所理解,以下是文章的具体介绍,望你浏览完以下的内容会有所收获.
- create or replace procedure Pro_rateCalculate as
- declare
- v_sc_id dim_service_center.sc_id%TYPE;
声明一个暂时变量,用来存储维修中央id
v_count3 number; 存储三个月内不合格的数目
v_allcount3 number; 存取三个月内不合格的数目
v_count6 number; 存取时间差,若改值大于0表示是六个月之前的维修中央
- v_allcount6 number;
- v_datediff number;
- v_rate number;
- cursor cur_sc_id is
- select sc_id from dim_service_center;
声明一个游标,此游标查出的是维修中央id
- begin
- open cur_sc_id;
- LOOP
- FETCH cur_sc_id
- INTO v_sc_id;
在Oracle游标触发器的存储历程中我们需求读取一个游标数据到v_sc_id
EXIT WHEN cur_sc_id%NOTFOUND; 假如读到最后则退出
select count(*) 计算主表中持续三个月不合格的数据的条数
- into v_count3
- from dim_service_center
- inner join fact_repair_sheet on dim_service_center.sc_id =
- fact_repair_sheet.sc_id
- inner join fact_vefpart on fact_vefpart.repid =
- fact_repair_sheet.repair_sheet_id
- where ((fact_vefpart.vef_result1 = '2'
初核后果为不合格
and fact_vefpart.MAJOR_FLAG = '2') 且不需求举行复核
or (fact_vefpart.vef_result2 = '2')) 大概复核后果为不合格
and fact_vefpart.ismajor = '1' 且是主要备件
and fact_repair_sheet.close_date > Add_months(sysdate, -3)为三个月内的数据
and dim_service_center.sc_id = v_sc_id;
v_allcount3 := v_count3; 把不合格的备件数据的数目赋值给总数目计数器
select count(*) 计算电话回访中持续三个月不合格的数据条数
- into v_count3
- from fact_verify
- inner join fact_repair_sheet on fact_verify.repid =
- fact_repair_sheet.repair_sheet_id
- inner join dim_service_center on dim_service_center.sc_id =
- fact_repair_sheet.sc_id
- where fact_verify.
CALLSTATUS = '不合格' 回访不合格
and fact_repair_sheet.close_date > Add_months(sysdate, -3)三个月内
and dim_service_center.sc_id = v_sc_id;
v_allcount3 := v_allcount3 + v_count3; 计算持续三个月总的不合格数目
以上的相关内容就是对Oracle游标触发器的存储历程介绍,望你能有所收获.
以上是“Oracle利用游标触发器存储实操[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |