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游标触发器的存储过程介绍,望你能有所收获。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值