• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            tbwshc

            tbw

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              95 Posts :: 8 Stories :: 3 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(4)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            Oracle臨時(shí)表在實(shí)際開發(fā)中的應(yīng)用是本文我們主要要介紹的內(nèi)容,我們知道,SQL Server 在編寫查詢式的存儲過程的時(shí)候,一直都令我為之贊嘆。Create procedure ps_procedure_name as select * from table; Select查詢語句可以作為SQL Server存儲過程的一部分,直接返回結(jié)果集。但在Oracle實(shí)現(xiàn)這種形式的存儲過程是不合語法的。

            為了達(dá)到這種目的,我們需要使用Oracle臨時(shí)表(這是其中一種解決方案)。

            Oracle數(shù)據(jù)庫除了可以保存永久表外,還可以建立臨時(shí)表temporary tables。Oracle臨時(shí)表分為會話級臨時(shí)表(ON COMMIT PRESERVE ROWS)和事務(wù)級臨時(shí)表(ON COMMIT DELETE ROWS)。tb會話級臨時(shí)表是指臨時(shí)表中的數(shù)據(jù)只在會話生命周期之中存在,當(dāng)用戶退出會話結(jié)束的時(shí)候,Oracle自動清除臨時(shí)表中數(shù)據(jù)。

            事務(wù)級臨時(shí)表是指臨時(shí)表中的數(shù)據(jù)只在事務(wù)生命周期中存在。當(dāng)一個事務(wù)結(jié)束(commit or rollback),Oracle自動清除臨時(shí)表中數(shù)據(jù)。臨時(shí)表中的數(shù)據(jù)只對當(dāng)前Session有效,每個Session都有自己的臨時(shí)數(shù)據(jù),并且不能訪問其它Session的臨時(shí)表中的數(shù)據(jù)。

            //在數(shù)據(jù)庫建立一個臨時(shí)表:

             

            1. CREATE GLOBAL TEMPORARY TABLE ESPS.ESPS_EMP_RANK_TEMP  
            2. (  
            3. COM                VARCHAR2(20 BYTE),  
            4. EMPNO             VARCHAR2(20 BYTE),  
            5. EMPNAME          VARCHAR2(100 BYTE),  
            6. DEPTNAME         VARCHAR2(300 BYTE),  
            7. AMOUNT            NUMBER,  
            8. APPROVED_AMOUNT  NUMBER,  
            9. FOLDING_AMOUNT   NUMBER,  
            10. BENEFIT          NUMBER,  
            11. EXECUTED_RATE    NUMBER,  
            12. FOLDING_RANK     NUMBER,  
            13. BENEFIT_RANK     NUMBER,  
            14. RANK             NUMBER,  
            15. TOTAL_RANK       NUMBER  
            16. )  
            17. //ON COMMIT PRESERVE ROWS         --這里代表的是事務(wù)級臨時(shí)表  
            18. ON COMMIT PRESERVE ROWS          --這里代表的是會話級臨時(shí)表 

             

            在實(shí)際的操作中,我就驗(yàn)證過上面所說的。一開始我使用了事務(wù)級臨時(shí)表,將數(shù)據(jù)插入到臨時(shí)表時(shí),使用commit操作,結(jié)果臨時(shí)表的內(nèi)容清空了。例如是:INSERT INTO ESPS_EMP_RANK_TEMP select * from table;commint;執(zhí)行這兩段SQL后,相當(dāng)于沒有插入數(shù)據(jù)。

            如果我們使用會話級臨時(shí)表,即使使用了commit,臨時(shí)表中的內(nèi)容還是存在的。直到會話斷開時(shí),臨時(shí)表中的內(nèi)容才真正的清空。所以,在實(shí)際的開發(fā)過程中,我們因該結(jié)合場景,使用不同類型的臨時(shí)表。

            在建議提案系統(tǒng)開發(fā)的過程中,我使用了會話級的臨時(shí)表。將查詢的數(shù)據(jù)插入到臨時(shí)表中,并且讀取臨時(shí)表的內(nèi)容,會話斷開時(shí),臨時(shí)表中的內(nèi)容自動清空。 

            在C#里面調(diào)用的三大步驟:

            //C#里面定義的一個String類型的變量,存儲一段動態(tài)SQL,存儲過程為:

            1. ESPS_EMP_RANK_STATISTIS({0},'{1}')  
            2. public static string I_EMP_RANK_STATISTIS = "BEGIN ESPS_EMP_RANK_STATISTIS({0},'{1}'); END;"

             

            //執(zhí)行存儲過程,把結(jié)果集插入到臨時(shí)表ESPS_EMP_RANK_TEMP

             

            1. WAF.COM.Core.OracleHelper. ExecuteNonQuery(conn, CommandType.Text, string.Format(SqlCollector.I_EMP_RANK_STATISTIS, 2,’2011’)); 

             

            //讀取臨時(shí)表中保存的結(jié)果集

             

            1. Oracle DataReader dr = WAF.COM.Core.OracleHelper. ExecuteReader(“select * from ESPS_EMP_RANK_TEMP”) 

             

            關(guān)于Oracle臨時(shí)表在實(shí)際開發(fā)中的應(yīng)用的相關(guān)知識就介紹到這里了,希望本次介紹能夠?qū)δ兴斋@!

            posted on 2012-07-08 10:49 tbwshc 閱讀(947) 評論(0)  編輯 收藏 引用 所屬分類: oracle
            久久久青草青青亚洲国产免观| 亚洲午夜精品久久久久久app| 久久综合丝袜日本网| 欧美精品九九99久久在观看| 久久精品一区二区国产| 久久精品国产亚洲AV高清热| 国内精品久久国产大陆| 亚洲色欲久久久综合网| 久久精品国产WWW456C0M| 久久久久亚洲AV成人片| 久久人人爽人人爽人人片AV麻豆 | 亚洲中文字幕无码久久2017| 亚洲日韩中文无码久久| 久久精品国产亚洲Aⅴ蜜臀色欲| 97久久天天综合色天天综合色hd| 久久综合88熟人妻| 久久99精品久久久久久9蜜桃| 久久亚洲色一区二区三区| 国产精品禁18久久久夂久| 韩国免费A级毛片久久| 亚洲欧美日韩精品久久亚洲区 | 国产精品VIDEOSSEX久久发布 | 亚洲精品乱码久久久久久不卡| 久久久久久国产a免费观看黄色大片 | 久久精品国产第一区二区三区 | 久久99国产精品久久| 久久精品亚洲一区二区三区浴池| 久久久99精品一区二区| 97久久国产综合精品女不卡| 亚洲人成无码网站久久99热国产| 久久青青国产| 无码国内精品久久人妻| 狠狠色丁香婷综合久久| 久久中文骚妇内射| 亚洲国产成人久久综合区| 久久青青草原国产精品免费| 天天综合久久一二三区| 婷婷伊人久久大香线蕉AV | 一本久久a久久精品亚洲| 97久久精品午夜一区二区| 伊人久久大香线蕉综合5g|