1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

Oracle使用游标触发器存储实操

2022-11-26 | 数据库 | gtxyzz | 525°c
A+ A-

如果你在Oracle游标触发器的存储的实际操作中,你对Oracle使用游标触发器的存储过程有不解之处时,你可以通过以下的文章对其的实际应用与功能有所了解,以下是文章的具体介绍,望你浏览完以下的内容会有所收获。

createorreplaceprocedurePro_rateCalculateas 
declare 
v_sc_iddim_service_center.sc_id%TYPE; 

声明一个临时变量,用来存储维修中心id

v_count3 number; 存储三个月内不合格的数量

v_allcount3 number; 存取三个月内不合格的数量

v_count6 number; 存取时间差,若改值大于0表示是六个月之前的维修中心

v_allcount6number; 
v_datediffnumber; 
v_ratenumber; 
cursorcur_sc_idis 
selectsc_idfromdim_service_center; 

声明一个游标,此游标查出的是维修中心id

begin 
opencur_sc_id; 
LOOP 
FETCHcur_sc_id 
INTOv_sc_id; 

在Oracle游标触发器的存储过程中我们需要读取一个游标数据到v_sc_id

EXIT WHEN cur_sc_id%NOTFOUND; 如果读到***则退出

select count(*) 计算主表中连续三个月不合格的数据的条数

intov_count3 
fromdim_service_center 
innerjoinfact_repair_sheetondim_service_center.sc_id= 
fact_repair_sheet.sc_id 
innerjoinfact_vefpartonfact_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(*) 计算电话回访中连续三个月不合格的数据条数

intov_count3 
fromfact_verify 
innerjoinfact_repair_sheetonfact_verify.repid= 
fact_repair_sheet.repair_sheet_id 
innerjoindim_service_centerondim_service_center.sc_id= 
fact_repair_sheet.sc_id 
wherefact_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; 计算连续三个月总的不合格数量

本文来源:1818IP

本文地址:https://www.1818ip.com/post/11751.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。