亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于游標(biāo)技術(shù)的復(fù)雜數(shù)據(jù)庫檢索方案分析

        2016-11-24 16:12:29李茂斌姚紅朱海鵬
        電腦知識(shí)與技術(shù) 2016年26期
        關(guān)鍵詞:游標(biāo)檢索

        李茂斌++姚紅++朱海鵬

        摘要:該文論述了在復(fù)雜數(shù)據(jù)庫編程中,使用游標(biāo)檢索的方法對(duì)多條記錄的操作,很好地解決了數(shù)據(jù)庫編程中無法直接對(duì)多條記錄操作的問題。

        關(guān)鍵詞:游標(biāo);檢索;數(shù)據(jù)庫編程

        中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)26-0001-02

        Retrieving Resolution Analysis of Complicated Database Based on Cursor Technology

        LI Mao-bin,YAO Hong,ZHU Hai-peng

        (CSFCC,Chengdu 611731,China)

        Abstract: This paper introduce the retrieving technology using cursor for several records in process of complicated database programming. In a certain extent, it could greatly resolute the problems of several records which could not be operated during database programming.

        Key words: cursor;retrieval;database programme

        1 引言

        在數(shù)據(jù)庫開發(fā)過程中,當(dāng)檢索的數(shù)據(jù)只是一條記錄時(shí),我們經(jīng)常使用查詢語句。但是在實(shí)際開發(fā)中經(jīng)常會(huì)遇到這樣的情況,即從一個(gè)結(jié)果集中逐一地取出每條數(shù)據(jù),操作這條數(shù)據(jù),如何解決這種問題呢?游標(biāo)技術(shù)正好提供了一個(gè)很好的解決方法。

        2 游標(biāo)概述

        游標(biāo)施展才華的地方是構(gòu)建在SQL中,用來查詢數(shù)據(jù)庫,獲取記錄集合的指針,它可以讓開發(fā)者一次訪問一行結(jié)果集,這可以讓程序員完成需要分別在結(jié)果集中每個(gè)記錄上執(zhí)行的過程代碼的任務(wù),游標(biāo)可以讓我們以編程方式訪問我們的數(shù)據(jù)。

        在數(shù)據(jù)庫中,游標(biāo)提供一種像C語言一樣對(duì)數(shù)據(jù)庫表檢索的靈活手段,使得程序員可以把結(jié)果集中的數(shù)據(jù)逐條取出來,來滿足程序的要求,避免SQL編碼中的短板。

        3 復(fù)雜信息數(shù)據(jù)庫編程問題的提出

        在某項(xiàng)目數(shù)據(jù)庫設(shè)計(jì)中,整件明細(xì)表導(dǎo)出的時(shí)候,整件涉及嵌套的問題,無法一次查詢完成,整件關(guān)系如圖1所示。這個(gè)時(shí)候就需要游標(biāo)來解決。

        創(chuàng)建一個(gè)過程,過程中游標(biāo)檢索子節(jié)點(diǎn)中是否還包含整件,如果包含就嵌套調(diào)用這個(gè)過程,如果沒有就直接檢索所有的值,按順序列出到明細(xì)表中,檢索流程如圖2所示。

        4 游標(biāo)操作

        游標(biāo)使用的步驟如下:聲明游標(biāo)、打開游標(biāo)、提取數(shù)據(jù)、關(guān)閉游標(biāo)。

        4.1 聲明游標(biāo)

        游標(biāo)使用前,首先聲明它。游標(biāo)的聲明包括兩個(gè)部分:游標(biāo)的名稱和這個(gè)游標(biāo)用到的SQL語句。如聲明一個(gè)PrjCursor的游標(biāo)以查詢某個(gè)整件下面的明細(xì)表信息,可以編寫如下代碼:

        DECLARE PrjCursor CURSOR FOR

        SELECT * FROM view_Prj WHERE FathPrjNo ="168";

        游標(biāo)的聲明有一點(diǎn)注意的是,聲明游標(biāo)的代碼行是不執(zhí)行的,不能將debug時(shí)的斷點(diǎn)設(shè)在這一行代碼行上,也不能聲明兩個(gè)同名的游標(biāo)。

        4.2 打開游標(biāo)

        聲明了游標(biāo)后,操作前先打開游標(biāo)。打開后執(zhí)行這段SQL代碼,例如打開上面聲明的一個(gè)游標(biāo),我們需要輸入代碼:

        OPEN PrjCursor;

        打開游標(biāo)是對(duì)數(shù)據(jù)庫進(jìn)行查詢操作,這將耗費(fèi)一段時(shí)間,具體耗費(fèi)時(shí)間的量取決于使用系統(tǒng)的性能和SQL語句的復(fù)雜程度。

        4.3 提取數(shù)據(jù)

        當(dāng)打開了游標(biāo)并在數(shù)據(jù)庫中執(zhí)行了查詢后,要用FETCH語句來取得數(shù)據(jù)。一條FETCH語句一次可以將一條記錄放入程序員指定的變量中,通過FETCH語句我們逐條得到查詢結(jié)果。在FETCH語句中可以指定游標(biāo)的名稱和目標(biāo)變量的名稱。代碼如下:

        FETCH PrjCursor INTO emp_PrjCursor;

        上述方法就是取得一條數(shù)據(jù)的方法,通常情況下,我們要獲取一個(gè)結(jié)果集的數(shù)據(jù),所以我們通常都是把游標(biāo)放置在一個(gè)循環(huán)體內(nèi),直至將結(jié)果集中的全部數(shù)據(jù)提取后,跳出循環(huán)。我們編寫如下代碼:

        loop

        fetch PrjCursor INTO emp_PrjCursor;

        if(emp_PrjCursor%found) then

        /*執(zhí)行操作語句*/

        end if;

        end loop;

        d) 關(guān)閉游標(biāo)

        在游標(biāo)操作完成后關(guān)閉游標(biāo),以使系統(tǒng)釋放游標(biāo)占用的資源。代碼如下所示:

        CLOSE PrjCursor;

        5 實(shí)例

        通常我們把這段游標(biāo)的代碼封裝在一個(gè)過程里,然后用這個(gè)過程來嵌套調(diào)用,這樣不管實(shí)際嵌套多少層,都可以很好的滿足要求。過程代碼如下:

        CREATE PROCEDURE procedure_MX(

        iFathPrjNo in number /*過程參數(shù):父節(jié)點(diǎn)序號(hào)*/

        BEGIN

        DECLARE CURSOR PrjCursor IS

        SELECT * FROM view_Prj WHERE FathPrjNo = iFathPrjNo ;

        emp_PrjCursor view_Prj %rowtype;

        BEGIN

        OPEN PrjCursor;

        LOOP

        FETCH PrjCursor INTO emp_PrjCursor;

        IF(emp_PrjCursor%FOUND) THEN

        procedure_MX(emp_PrjCursor. FathPrjNo);

        /*執(zhí)行操作語句*/

        END IF;

        END LOOP;

        CLOSE PrjCursor ;

        END;

        END procedure_MX;

        6 結(jié)論

        在復(fù)雜數(shù)據(jù)庫編程中,這種多條記錄查詢、操作的情況比較常見,但是數(shù)據(jù)庫語言又不能像高級(jí)語言一樣很靈活的進(jìn)行循環(huán)嵌套等操作,游標(biāo)技術(shù)很好地解決了這個(gè)問題,使得數(shù)據(jù)庫編程也可以實(shí)現(xiàn)高級(jí)語言的大部分操作,同時(shí)也可以為項(xiàng)目的其他部分提供借鑒。

        參考文獻(xiàn):

        [1] Sean Dillon,Christopher Beck,等.袁勤勇,何欣,等譯.Oracle編程入門經(jīng)典[M].北京:清華大學(xué)出版社,2002.11.

        [2] Thomas Kyte.Orcale9i&10g編程藝術(shù)深入數(shù)據(jù)庫體系結(jié)構(gòu)[M]. 蘇金國,王小振,等譯.北京:人民郵電出版社,2006.10.

        [3] Hector Garcia-Molina,Jeffrey.D.Ullman. Database Systems:the Complete Book(second edition)[M].Prentice Hall,2008.

        [4] Rahimi,Saeed K.Haug,Grank S. Distributed Database Management Systems:A Practical Approach[M]. Wiley-IEEE Computer Society Press,2010.

        猜你喜歡
        游標(biāo)檢索
        開繞組直線游標(biāo)永磁電機(jī)的矢量控制研究
        MySQL數(shù)據(jù)庫下游標(biāo)的設(shè)計(jì)與應(yīng)用
        測量不確定度在游標(biāo)式輪對(duì)內(nèi)距尺檢定裝置中的應(yīng)用
        物理實(shí)驗(yàn)思維核心素養(yǎng)的培養(yǎng)與突破
        ——游標(biāo)卡尺、螺旋測微器的應(yīng)用和拓展
        物理教師(2020年1期)2020-04-24 00:46:50
        2019年第4-6期便捷檢索目錄
        《國外醫(yī)藥抗生素分冊(cè)》第37卷1~6期(2016年)目次檢索
        專利檢索中“語義”的表現(xiàn)
        專利代理(2016年1期)2016-05-17 06:14:36
        SQL數(shù)據(jù)庫中基于游標(biāo)的數(shù)據(jù)更新
        電腦與電信(2015年9期)2015-04-16 01:30:10
        基于SQL游標(biāo)的研究與應(yīng)用
        國際|標(biāo)準(zhǔn)|檢索
        一个人看的www片免费高清视频 | 亚洲国产精品亚洲一区二区三区 | 国产亚洲91精品色在线| 成人在线免费电影| 无码人妻精品一区二区三区在线| 亚洲欧美日韩中文v在线| 日本黄色特级一区二区三区| 亚洲国产中文字幕视频| 亚洲人午夜射精精品日韩| 欧美成aⅴ人高清免费| 亚洲精品区二区三区蜜桃| 国产一区二区长腿丝袜高跟鞋| 亚洲a∨无码男人的天堂| 亚洲av有码在线天堂| 亚洲欧美香港在线观看三级片| 国产三级av大全在线爽| 玩弄放荡人妇系列av在线网站 | 久久无码一一区| 97久久国产精品成人观看| 亚洲国产精品18久久久久久| 亚洲欧美在线观看| 国产精品情侣露脸av在线播放| 一区二区三区高清视频在线| 少妇夜夜春夜夜爽试看视频 | 香蕉久久久久久久av网站| 超级碰碰人妻中文字幕| 高清不卡av一区二区| 色噜噜久久综合伊人一本| 中文字幕喷水一区二区| 精品人妻一区二区蜜臀av| 美女午夜福利视频网址| 国产高清在线精品一区二区三区| 中文字幕一区二区人妻出轨 | 很黄很色的女同视频一区二区 | 99精品国产一区二区三区a片| 国产精品无码久久久久免费AV| 国产精品视频白浆免费看| 国色天香中文字幕在线视频| 国产熟妇搡bbbb搡bb七区| 男人的天堂av一二三区| 日韩人妖视频一区二区|