oracle触发器中保存临时数据,Oracle使用游标触发器存储实操
如果你在Oracle游標(biāo)觸發(fā)器的存儲(chǔ)的實(shí)際操作中,你對(duì)Oracle使用游標(biāo)觸發(fā)器的存儲(chǔ)過(guò)程有不解之處時(shí),你可以通過(guò)以下的文章對(duì)其的實(shí)際應(yīng)用與功能有所了解,以下是文章的具體介紹,望你瀏覽完以下的內(nèi)容會(huì)有所收獲。
create?or?replace?procedure?Pro_rateCalculate?as
declare
v_sc_id?dim_service_center.sc_id%TYPE;
聲明一個(gè)臨時(shí)變量,用來(lái)存儲(chǔ)維修中心id
v_count3 number; 存儲(chǔ)三個(gè)月內(nèi)不合格的數(shù)量
v_allcount3 number; 存取三個(gè)月內(nèi)不合格的數(shù)量
v_count6 number; 存取時(shí)間差,若改值大于0表示是六個(gè)月之前的維修中心
v_allcount6?number;
v_datediff?number;
v_rate?number;
cursor?cur_sc_id?is
select?sc_id?from?dim_service_center;
聲明一個(gè)游標(biāo),此游標(biāo)查出的是維修中心id
begin
open?cur_sc_id;
LOOP
FETCH?cur_sc_id
INTO?v_sc_id;
在Oracle游標(biāo)觸發(fā)器的存儲(chǔ)過(guò)程中我們需要讀取一個(gè)游標(biāo)數(shù)據(jù)到v_sc_id
EXIT WHEN cur_sc_id%NOTFOUND; 如果讀到***則退出
select count(*) 計(jì)算主表中連續(xù)三個(gè)月不合格的數(shù)據(jù)的條數(shù)
into?v_count3
from?dim_service_center
inner?join?fact_repair_sheet?ondim_service_center.sc_id=
fact_repair_sheet.sc_id
inner?join?fact_vefpart?onfact_vefpart.repid=
fact_repair_sheet.repair_sheet_id
where?((fact_vefpart.vef_result1='2'
初核結(jié)果為不合格
and fact_vefpart.MAJOR_FLAG = '2') 且不需要進(jìn)行復(fù)核
or (fact_vefpart.vef_result2 = '2')) 或者復(fù)核結(jié)果為不合格
and fact_vefpart.ismajor = '1' 且是主要備件
and fact_repair_sheet.close_date > Add_months(sysdate, -3)為三個(gè)月內(nèi)的數(shù)據(jù)
and dim_service_center.sc_id = v_sc_id;
v_allcount3 := v_count3; 把不合格的備件數(shù)據(jù)的數(shù)量賦值給總數(shù)量計(jì)數(shù)器
select count(*) 計(jì)算電話回訪中連續(xù)三個(gè)月不合格的數(shù)據(jù)條數(shù)
into?v_count3
from?fact_verify
inner?join?fact_repair_sheet?onfact_verify.repid=
fact_repair_sheet.repair_sheet_id
inner?join?dim_service_center?ondim_service_center.sc_id=
fact_repair_sheet.sc_id
where?fact_verify.
CALLSTATUS = '不合格' 回訪不合格
and fact_repair_sheet.close_date > Add_months(sysdate, -3)三個(gè)月內(nèi)
and dim_service_center.sc_id = v_sc_id;
v_allcount3 := v_allcount3 + v_count3; 計(jì)算連續(xù)三個(gè)月總的不合格數(shù)量
以上的相關(guān)內(nèi)容就是對(duì)Oracle游標(biāo)觸發(fā)器的存儲(chǔ)過(guò)程介紹,望你能有所收獲。
【編輯推薦】
【責(zé)任編輯:孫巧華 TEL:(010)68476606】
點(diǎn)贊 0
總結(jié)
以上是生活随笔為你收集整理的oracle触发器中保存临时数据,Oracle使用游标触发器存储实操的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 水库调度matlab,基于MATLAB模
- 下一篇: 【iOS7一些总结】9、与列表显示(在)