国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

如何在Oracle中使用游標來實現(xiàn)多重循環(huán)

2024-08-29 13:37:22
字體:
供稿:網(wǎng)友
這篇文章,是最近在寫一個項目中所用的存儲過程,由于是第一次接觸Oracle,其間花費了許多功夫,才把功能實現(xiàn)!特記錄下來,以供參考!
create or replace package PSH_GPrssTREAMSTAT is -- Author : ADMINISTRATOR
-- Created : 2004-12-8 10:56:01
-- Purpose : GPRS流量統(tǒng)計狀態(tài)
-- 統(tǒng)計GPRS流量type
C_Cur is ref cursor;
function Calcu_GPRSSTREAM return number;
end PSH_GPRSSTREAMSTAT;
-----------------------------------------------------------------------------
create or replace package body PSH_GPRSSTREAMSTAT is
function Calcu_GPRSSTREAM return number
is
c_ipPackHeadLen constant number := 40; -- 定義IP包頭長度
CURSOR c_SPINFO is
select distinct spid from sh_spinfo where isactive = '0';c_MDTINFO C_Cur ;
v_MDTINFO number;v_UpTransContentLens number(20,0); -- 存放當前GPRS終端上傳轉(zhuǎn)發(fā)的信息內(nèi)容長度
v_UpContentLens number(20,0);
v_UpTotalLens number(20,0); -- 累計GPRS終端上傳的信息內(nèi)容長度
v_DownContentLens number(20,0);
v_DownTotalLens number(20,0);
newID number(20,0);begin
-- 初始化
select max(statid) into newID from sh_gprsstreamstat;
if (newID is null) then
newID := 1;
end if;for v_SPINFO In c_SPINFO loop -- 首先獲取SPID
-- 其次遍歷出與當前SPID對應的所有MDT
open c_MDTINFo for select distinct mdtid from sh_mdtinfo where (isactive = '0') and (spid = v_SPINFO.spid);
loop
fetch c_MDTINFO into v_MDTINFO;
exit when c_MDTINFO%notfound;v_UpContentLens := 0;
v_UpTransContentLens := 0;
v_UpTotalLens := 0;
v_DownContentLens := 0;
v_DownTotalLens := 0;
-- 下面兩個select語句是用來獲得GPRS終端上傳的信息流量
select sum(length(content) + c_IPPackHeadLen) into v_UpContentLens from sh_gprsmdtupinfo where (MDTID = v_MDTINFO) and (spid = v_SPINFO.spid) ;
select sum(length(content) + c_IPPackHeadLen) into v_UpTransContentLens from sh_gprsmdttransinfo where (issUCcess = '1') and (MDTID = v_MDTINFO) and (spid = v_SPINFO.spid) ;
if (v_UpContentLens is null) then
v_UpContentLens := 0;
end if;
if (v_UpTransContentLens is null) then
v_UpTransContentLens := 0;
end if;
v_UpTotalLens := v_UpTotalLens + v_UpContentLens + v_UpTransContentLens;-- 下面的Select語句是用來獲得服務商下發(fā)的信息流量
select sum(length(content) + c_IPPackHeadLen) into v_DownContentLens from sh_gprsspdowninfo where (MDTID = v_MDTINFO) and (spid = v_SPINFO.spid) ;
if (v_DownContentLens is null) then
v_DownContentLens := 0;
end if;
v_DownTotalLens := v_DownTotalLens + v_DownContentLens ;-- 將統(tǒng)計出的累計值存放到流量狀態(tài)統(tǒng)計表中
if (v_UpTotalLens >0) or (v_DownTotalLens > 0) then
insert into sh_gprsstreamstat (statid,spid,mdtid,starttime,endtime,mdtupstream,spdownstream)
values(newID,v_SPINFO.spid,v_MDTINFO,sysdate,sysdate,v_UpTotalLens,v_DownTotalLens);
-- 自增量加1
newID := newID + 1;
end if;
end loop;
close c_MDTINFO;
commit;
end loop;
return 1;
end;
begin
null;
end PSH_GPRSSTREAMSTAT;


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 军事| 镇江市| 双桥区| 库伦旗| 金湖县| 且末县| 和平区| 察雅县| 宁波市| 柏乡县| 新巴尔虎左旗| 印江| 滦平县| 霍山县| 闸北区| 蛟河市| 克拉玛依市| 蕲春县| 湖口县| 江城| 旺苍县| 星子县| 云林县| 吉林市| 平江县| 额济纳旗| 盐城市| 涟源市| 芦山县| 虎林市| 阳西县| 棋牌| 汾阳市| 鲁山县| 天峨县| 白玉县| 万安县| 八宿县| 涟水县| 穆棱市| 大新县|