一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Oracle PL/SQL游標(biāo)的學(xué)習(xí)

 爪一o_0一斗 2013-02-05

Oracle PL/SQL游標(biāo)的學(xué)習(xí)
轉(zhuǎn)自:領(lǐng)測軟件測試網(wǎng)[http://www.]
原文鏈接:http://www./ceshi/ruanjianceshikaifajishu/rjcskfyy/sjk/2007/0526/16690.html

一 游標(biāo)是什么
游標(biāo)字面理解就是游動的光標(biāo)。

用數(shù)據(jù)庫語言來描述:游標(biāo)是映射在結(jié)果集中一行數(shù)據(jù)上的位置實體,有了游標(biāo),用戶就可以訪問結(jié)果集中的任意一行數(shù)據(jù)了,將游標(biāo)放置到某行后,即可對該行數(shù)據(jù)進行操作,例如提取當(dāng)前行的數(shù)據(jù)等。

二 游標(biāo)的分類
顯式游標(biāo)和隱式游標(biāo)
顯式游標(biāo)的使用需要4步:

1. 聲明游標(biāo)

CURSOR mycur(vartype number)
is
            select emp_no,emp_zc from cus_emp_basic
            where com_no = vartype;  

2. 打開游標(biāo)
open mycur(000627)
注:000627是參數(shù)

3. 讀取數(shù)據(jù)
fetch mycur into varno, varprice;

4. 關(guān)閉游標(biāo)
close mycur;

三 游標(biāo)的屬性

    oracle 游標(biāo)有4個屬性:%ISOPEN,%FOUND,%NOTFOUND,%ROWCOUNT。
%ISOPEN判斷游標(biāo)是否被打開,如果打開%ISOPEN等于true,否則等于false;
%FOUND %NOTFOUND判斷游標(biāo)所在的行是否有效,如果有效,則%FOUNDD等于true,否則等于false;
%ROWCOUNT返回當(dāng)前位置為止游標(biāo)讀取的記錄行數(shù)。

四 示例
set serveroutput on;
            declare
            varno varchar2(20);
            varprice varchar2(20);
            CURSOR mycur(vartype number) is
            select emp_no,emp_zc from cus_emp_basic
            where com_no = vartype;
            begin
            if mycur%isopen = false then
            open mycur(000627);
            end if;
            fetch mycur into varno,varprice;
            while mycur%found
            loop
            dbms_output.put_line(varno||','||varprice);
            if mycur%rowcount=2 then
            exit;
            end if;
            fetch mycur into varno,varprice;
            end loop;
            close mycur;
            end;  


PL/SQL記錄的結(jié)構(gòu)和C語言中的結(jié)構(gòu)體類似,是由一組數(shù)據(jù)項構(gòu)成的邏輯單元。

PL/SQL記錄并不保存在數(shù)據(jù)庫中,它與變量一樣,保存在內(nèi)存空間中,在使用記錄時候,要首先定義記錄結(jié)構(gòu),然后聲明記錄變量??梢园裀L/SQL記錄看作是一個用戶自定義的數(shù)據(jù)類型。

set serveroutput on;
            declare
            type person is record
            (
            empno cus_emp_basic.emp_no%type,
            empzc cus_emp_basic.emp_zc%type);
            person1 person;
            cursor mycur(vartype number)is
            select emp_no,emp_zc from cus_emp_basic
            where com_no=vartype;
            begin
            if mycur%isopen = false then
            open mycur(000627);
            end if;
            loop
            fetch mycur into person1;
            exit when mycur%notfound;
            dbms_output.put_line('雇員編號:'||person1.empno||',地址:'||person1.empzc);
            end loop;
            close mycur;
            end;  

 


典型游標(biāo)for 循環(huán)
    游標(biāo)for循環(huán)示顯示游標(biāo)的一種快捷使用方式,它使用for循環(huán)依次讀取結(jié)果集中的行數(shù)據(jù),當(dāng)for循環(huán)開始時,游標(biāo)自動打開(不需要open),每循環(huán)一次系統(tǒng)自動讀取游標(biāo)當(dāng)前行的數(shù)據(jù)(不需要fetch),當(dāng)退出for循環(huán)時,游標(biāo)被自動關(guān)閉(不需要使用close)。使用游標(biāo)for循環(huán)的時候不能使用open語句,fetch語句和close語句,否則會產(chǎn)生錯誤。

set serveroutput on;
            declare
            cursor mycur(vartype number)is
            select emp_no,emp_zc from cus_emp_basic
            where com_no=vartype;
            begin
            for person in mycur(000627) loop
            dbms_output.put_line('雇員編號:'||person.emp_no||',地址:'||person.emp_zc);
            end loop;
            end;  

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美在线视频一区观看| 国产综合香蕉五月婷在线| 白白操白白在线免费观看| 亚洲天堂久久精品成人| 久久久精品日韩欧美丰满| 人妻偷人精品一区二区三区不卡| 国产又大又硬又粗又湿| 激情丁香激情五月婷婷| 成年午夜在线免费视频| 欧美日韩国产午夜福利| 国产精品美女午夜视频| 日本av在线不卡一区| 亚洲a级一区二区不卡| 久热99中文字幕视频在线| 国产视频一区二区三区四区| 国产精品一区二区三区日韩av| 欧美日本道一区二区三区| 黄片在线免费看日韩欧美| 欧美日韩一级aa大片| 国产欧美一区二区久久| 亚洲精品中文字幕在线视频| 国产精品一区日韩欧美| 亚洲欧美日韩精品永久| 亚洲欧美日韩色图七区| 欧美激情一区二区亚洲专区| 欧美又大又黄刺激视频| 人妻少妇系列中文字幕| 日韩中文无线码在线视频| 亚洲精品日韩欧美精品| 国产一区二区三区免费福利 | 国产又大又猛又粗又长又爽| 欧美精品激情视频一区| 国产欧美日韩在线一区二区| 97人妻精品一区二区三区男同| 中文精品人妻一区二区| 日韩欧美三级中文字幕| 成人午夜激情免费在线| 欧美亚洲国产日韩一区二区| 国产熟女一区二区精品视频| 国产视频在线一区二区| 中文字幕欧美视频二区|