熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

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

2013-11-13 12:48:00  來源: 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游標觸發器的存儲過程介紹望你能有所收獲


From:http://tw.wingwit.com/Article/program/Oracle/201311/16603.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.