数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

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


发布日期:2020年12月10日
 
介绍Oracle使用游标触发器存储实操

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

create or replace procedure Pro_rateCalculate as declare v_sc_id dim_service_centersc_id%TYPE; 声明一个临时变量用来存储维修中心id

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

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

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

v_allcount 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_count from dim_service_center inner join fact_repair_sheet on dim_service_centersc_id = fact_repair_sheetsc_id inner join fact_vefpart on fact_vefpartrepid = fact_repair_sheetrepair_sheet_id where ((fact_vefpartvef_result = 初核结果为不合格

and fact_vefpartMAJOR_FLAG = ) 且不需要进行复核

or (fact_vefpartvef_result = )) 或者复核结果为不合格

and fact_vefpartismajor = 且是主要备件

and fact_repair_sheetclose_date > Add_months(sysdate )为三个月内的数据

and dim_service_centersc_id = v_sc_id;

v_allcount := v_count; 把不合格的备件数据的数量赋值给总数量计数器

select count(*) 计算电话回访中连续三个月不合格的数据条数

into v_count from fact_verify inner join fact_repair_sheet on fact_verifyrepid = fact_repair_sheetrepair_sheet_id inner join dim_service_center on dim_service_centersc_id = fact_repair_sheetsc_id where fact_verify

CALLSTATUS = 不合格 回访不合格

and fact_repair_sheetclose_date > Add_months(sysdate )三个月内

and dim_service_centersc_id = v_sc_id;

v_allcount := v_allcount + v_count; 计算连续三个月总的不合格数量

以上的相关内容就是对Oracle游标触发器的存储过程介绍望你能有所收获

上一篇:ORACLE常用傻瓜问题1000问全集(二)

下一篇:较好的重新启动数据库的步骤