你所在的位置: 首页 > Oracle > OCP >
最新开班 班级 报名状态
9月16日 HCNP-R&S(含初级) 热招中
9月18日 RHCSA脱产班 热招中
9月25日 HCNA-Cloud Service 热招中
9月25日 HCNA-Cloud Service 热招中
9月30日 HCNA-R&S周末班 热招中
10月31日 HCNP-storage脱产班 热招中
10月23日 HCNA-storage脱产班 热招中
10月20日 HCNP-R&S脱产班 热招中
10月10日 HCIE-R&S脱产班 热招中
10月9日 HCNA-R&S脱产班 热招中
  • 博赛网络ICT就业班热招中
  • 博赛推出Oracle OCM实战课程

Oracle使用游标触发器的实际存储过程

时间:2013-10-30 11:19 作者:Superthink 点击:

以下的文章抓哟讲述的是Oracle使用游标触发器的实际存储过程,文章主要是通过实际应用代码的方式来引出相关实际应用的具体操作方案,以下就是文章的具体内容的描述,望你在浏览之后会有所收获。


  1. create or replace procedure Pro_rateCalculate as
  2. --declare
  3. v_sc_id dim_service_center.sc_id%TYPE;

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


  1. v_count3 number;

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


  1. v_allcount3 number;

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


  1. v_count6 number;

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

 


  1. v_allcount6 number;
  2. v_datediff number;
  3. v_rate number;
  4. cursor cur_sc_id is
  5. select sc_id from dim_service_center;

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

 


  1. begin
  2. open cur_sc_id;
  3. LOOP
  4. FETCH cur_sc_id
  5. INTO v_sc_id;

读取一个游标数据到v_sc_id


  1. EXIT WHEN cur_sc_id%NOTFOUND;

如果读到最后则退出

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

 


  1. into v_count3
  2. from dim_service_center
  3. inner join fact_repair_sheet on dim_service_center.sc_id =
  4. fact_repair_sheet.sc_id
  5. inner join fact_vefpart on fact_vefpart.repid =
  6. fact_repair_sheet.repair_sheet_id
  7. where ((fact_vefpart.vef_result1 = '2'

初核结果为不合格


  1. and fact_vefpart.MAJOR_FLAG = '2')

且不需要进行复核


  1. or (fact_vefpart.vef_result2 = '2'))

或者复核结果为不合格


  1. and fact_vefpart.ismajor = '1'

且是主要备件

 


  1. and fact_repair_sheet.close_date > Add_months(sysdate, -3)

为三个月内的数据q

 


  1. and dim_service_center.sc_id = v_sc_id;

把不合格的备件数据的数量赋值给总数量计数器

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

 


  1. into v_count3
  2. from fact_verify
  3. inner join fact_repair_sheet on fact_verify.repid =
  4. fact_repair_sheet.repair_sheet_id
  5. inner join dim_service_center on dim_service_center.sc_id =
  6. fact_repair_sheet.sc_id
  7. where fact_verify.

 

CALLSTATUS = '不合格'回访不合格

 


  1. and fact_repair_sheet.close_date > Add_months(sysdate, -3)

三个月内

 


  1. v_allcount3 := v_allcount3 + v_count3;

计算连续三个月总的不合格数量

上述的相关内容就是对Oracle使用游标触发器的存储过程的描述,希望会给你带来一些帮助在此方面。

(责任编辑:Superthink)

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)