程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle使用游標觸發器存儲實操

Oracle使用游標觸發器存儲實操

編輯:Oracle數據庫基礎

如果你在Oracle游標觸發器的存儲的實際操作中,你對Oracle使用游標觸發器的存儲過程有不解之處時,你可以通過以下的文章對其的實際應用與功能有所了解,以下是文章的具體介紹,望你浏覽完以下的內容會有所收獲。

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

聲明一個臨時變量,用來存儲維修中心id

v_count3 number; 存儲三個月內不合格的數量

v_allcount3 number; 存取三個月內不合格的數量

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;  

在Oracle游標觸發器的存儲過程中我們需要讀取一個游標數據到v_sc_id

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'   

初核結果為不合格

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(*) 計算電話回訪中連續三個月不合格的數據條數

  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 = '不合格' 回訪不合格

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; 計算連續三個月總的不合格數量

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved