• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Oracle存儲過程在社會保險網上公共服務管理系統的應用

    2014-04-29 00:00:00趙雪琴徐凱華
    計算機光盤軟件與應用 2014年7期

    摘 要:本文通過社會保險網上公共服務管理系統的開發(fā),實現了利用oracle數據庫中存儲過程來實現不同參保單位補繳不同年份的養(yǎng)老保險金的利息計算問題,從而簡化了該功能的計算過程,提高了數據處理速度,減少了網絡通信流量,提高了系統的執(zhí)行效率。

    關鍵詞:oracle數據庫;存儲過程;養(yǎng)老保險金;計算利息

    中圖分類號:TP311.138

    基于oracle數據庫平臺的社會保險網上公共服務管理系統的設計目標,是為了進一步完善現有社保業(yè)務管理服務社會化的要求,提高社保部門的服務水平,提高工作效率,減少用人單位的工作量,降低各項錯誤數據的產生,逐步實現參保單位辦理社保業(yè)務的標準化、規(guī)范化?;谠撃繕?,在系統開發(fā)過程中涉及計算不同參保單位補繳不同年份的養(yǎng)老保險金的利息計算問題模塊,該問題涉及眾多的參保單位,計算不同年份的利息,計算過程繁瑣,根據存儲過程的執(zhí)行特點和優(yōu)點,將該模塊使用存儲過程來實現,簡化了該計算過程,體現了模塊化程序設計的思想。

    1 存儲過程概述

    1.1 存儲過程概念。存儲過程(Stored Procedure)是在大型數據庫系統中,一組為了完成特定功能的SQL 語句集,經編譯后存儲在數據庫中,用戶通過指定存儲過程的名字并給出參數(如果該存儲過程帶有參數)來執(zhí)行它。Oracle 中的存儲過程是sql、pl/sql、java語句的組合,使用存儲過程可以將執(zhí)行商業(yè)規(guī)則的代碼從應用程序轉移到數據庫中,從而使相應的代碼存儲一次就可以被多個程序多次調用。

    1.2 存儲過程的優(yōu)點

    (1)存儲過程只在創(chuàng)造時進行編譯,以后每次執(zhí)行存儲過程都不需再重新編譯,而一般SQL語句每執(zhí)行一次就編譯一次,所以使用存儲過程可提高數據庫執(zhí)行速度。

    (2)當對數據庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此復雜操作用存儲過程封裝起來與數據庫提供的事務處理結合一起使用。

    (3)存儲過程可以重復使用,可減少數據庫開發(fā)人員的工作量。

    (4)安全性高,可設定只有某用戶才具有對指定存儲過程的使用權。

    (5)減少網絡傳輸:特別是對于一些處理數據的存儲過程,不必像直接使用SQL語句那樣多次傳送數據到客戶端。

    (6)可維護性高:更新存儲過程通常要比更改、測試和部署應用程序需要的時間和精力要少。

    1.3 使用存儲過程的策略

    (1)當一個事務涉及到多個SQL語句或者涉及到多個表的操作時,應該考慮使用存儲過程。(2)當一個事務的完成需要很復雜的商業(yè)邏輯時,考慮使用存儲過程。(3)當要處理比較復雜的計算、統計、匯總操作時,考慮使用存儲過程。

    2 社會保險網上公共服務管理系統利息結算分析

    根據豫人社養(yǎng)老[2010]11號文件的規(guī)定,在未參保人員和漏保人員參保時,需要補繳基本養(yǎng)老保險費本金和利息。由于涉及眾多的參保單位,用戶個人賬戶的利息計算以1998繳費年度為分界點,過程繁瑣,下面給出該過程的計算方法:

    (1)1998年度之前個人帳戶的計息:上年度帳戶儲存額存滿一年計全息,當年度繳費計半息。年度計息公式:累計金額本年度=累計金額上年度×(1+年利率本年度)+當年金額×(1+年利率本年度/2)

    (2)1998年度之后(含1998年度)個人帳戶的計息:資金在帳戶中存滿全年按年利率計算,當年繳費按照其在帳戶中存續(xù)的月份數乘以年利率的1/12結算;年度計息公式:累計金額本年度=累計金額上年度×(1+年收益率本年度)+∑當年各月金額×(1+存續(xù)月數×年收益率/12本年度)

    通過以上的介紹可以看出,如果不采用存儲過程來開發(fā),不同單位、不同年份都要重復相同的代碼,程序開發(fā)人員的工作量很大,且效率很低,維護起來也很麻煩,該過程正好符合使用存儲過程解決問題的策略,因此在該系統中使用存儲過程來實現利息的計算問題。

    3 使用存儲過程進行利息計算具體實現

    由于該存儲過程代碼量比較大,所以在該文中略去了定義變量部分及異常處理部分,只寫出了主要的計息過程。參數介紹:輸入參數為:單位代碼、應繳費年月、繳費金額,返回值為:錯誤代碼、應繳利息。

    CREATE OR REPLACE procedure ztj_jslx(lsdwdm IN VARCHAR2 ,lsyjny IN VARCHAR2 ,ldje IN Number , v_return out varchar2 ,ldyjlx out NUMBER ) is

    --定義變量

    --循環(huán)取出繳費年度、工作年度的起始年月、結束年月和歷年的利率

    cursor cc IS select jf_nd lsjfnd1, min(qssj) lsqssj1 , max(jzsj) lsjzsj1 ,Max(Nvl(ll,0)) ldll1 from zjfa WHERE dw_dm= lsdwdm AND jf_nd > lsjfnd GROUP BY jf_nd ORDER BY jf_nd;

    begin

    SELECT csz INTO lsgzny FROM xtlccs WHERE dm='300'; 取出當前工作年度和年月

    SELECT jf_nd INTO lsjfnd FROM zjfa WHERE dw_dm=trim(lsdwdm) AND qssj<=trim(lsyjny) AND jzsj>=trim(lsyjny);

    SELECT Max(jzsj),Max(Nvl(ll,0)) INTO lsjzsj , ldll FROM zjfa WHERE dw_dm=trim(lsdwdm) AND jf_nd=lsjfnd;

    IF lsjfnd <'1998' THEN

    ldlx := ldje * ldll /200; 1998年前記半息

    ELSIF lsjfnd <> lsgznd THEN

    ldlx := ldje * ldll * getmonth(lsyjny,lsjzsj)/1200 ; 1998年后按月記息

    ELSE --補繳當年的利息計算

    ldlx := ldje * ldll * getmonth(lsyjny,lsgzny)/1200 ;

    END IF;--循環(huán)計算到當前年度

    for dd in cc LOOP

    IF dd.lsjfnd1<> lsgznd THEN

    ldlx := ldlx + (ldje + ldlx ) * dd.ldll1 /100 ;

    ELSE

    ldlx := ldlx + (ldje + ldlx ) * dd.ldll1 * getmonth(dd.lsqssj1,lsgzny)/1200;

    END IF ; END LOOP;ldyjlx := ldlx ;--異常處理

    … END ztj_jslx ;

    4 結束語

    社會保險網上公共服務管理系統中,涉及到很多比較復雜的計算及處理過程,這些過程均采用oracle的存儲過程來實現。通過實際應用表明,存儲過程的使用降低系統的開發(fā)難度,減少了開發(fā)人員的工作量,提高的系統的執(zhí)行效率。

    參考文獻:

    [1]河南省人力資源和社會保障廳辦公室[Z].豫人社養(yǎng)老[2010]11號,2010(07).

    [2]李晶,李星,劉剛.基于Oracle存儲過程與觸發(fā)器的三維空間數據日志管理方法[J].計算機與現代化,2010(07).

    [3]陳虹.基于Oracle的高校研究生招生系統設計與實現[J].電腦知識與技術,2010(07).

    [4]陳永建,朱娟,黎桂林.Java中Oracle存儲過程的使用方法研究[J].哈爾濱商業(yè)大學學報(自然科學版),2005(06).

    作者簡介:趙雪琴,女,碩士,講師,主要研究方向:數據庫及計算機應用。

    作者單位:鄭州大學 西亞斯國際學院,河南新鄭 451150

    基金項目:本文系河南省科技廳重點科技攻關項目“社會保險網上服務平臺的研究與實現”(項目編號:132102210415)研究成果。

    衢州市| 达日县| 牙克石市| 云浮市| 涡阳县| 灌云县| 秦安县| 凤翔县| 进贤县| 辽宁省| 安庆市| 甘肃省| 正阳县| 汝城县| 丽江市| 乐陵市| 都江堰市| 通山县| 鲜城| 寿阳县| 乃东县| 九台市| 呼伦贝尔市| 横山县| 鲁山县| 明水县| 红安县| 龙海市| 连云港市| 如东县| 上虞市| 马关县| 崇礼县| 永春县| 沽源县| 丁青县| 秦安县| 金坛市| 荆门市| 丹凤县| 屯门区|