成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 吉林OA系統(tǒng) > 長(zhǎng)春OA系統(tǒng) > 長(zhǎng)春OA行業(yè)資訊
全面解讀數(shù)據(jù)庫(kù)中游標(biāo)的使用方法
申請(qǐng)免費(fèi)試用、咨詢(xún)電話(huà):400-8352-114
文章來(lái)源:泛普軟件數(shù)據(jù)庫(kù)中游標(biāo)的使用方法(上)
游標(biāo)是系統(tǒng)為用戶(hù)開(kāi)設(shè)的一個(gè)數(shù)據(jù)緩沖區(qū),存放SQL語(yǔ)句的執(zhí)行結(jié)果。由系統(tǒng)或用戶(hù)以變量的形式定義。用戶(hù)可以用SQL語(yǔ)句逐一從游標(biāo)中獲取記錄,并賦給主變量,交由主語(yǔ)言進(jìn)一步處理,主語(yǔ)言是面向記錄的,一組主變量一次只能存放一條記錄在某些情況下,需要把數(shù)據(jù)從存放在磁盤(pán)的表中調(diào)到計(jì)算機(jī)內(nèi)存中進(jìn)行處理,最后將處理結(jié)果顯示出來(lái)或最終寫(xiě)回?cái)?shù)據(jù)庫(kù)。這樣數(shù)據(jù)處理的速度才會(huì)提高,否則頻繁的磁盤(pán)數(shù)據(jù)交換會(huì)降低效率。用數(shù)據(jù)庫(kù)語(yǔ)言來(lái)描述游標(biāo)就是映射在結(jié)果集中一行數(shù)據(jù)上的位置實(shí)體,有了游標(biāo),用戶(hù)就可以訪(fǎng)問(wèn)結(jié)果集中的任意一行數(shù)據(jù)了,將游標(biāo)放置到某行后,即可對(duì)該行數(shù)據(jù)進(jìn)行操作,例如提取當(dāng)前行的數(shù)據(jù)等。
游標(biāo)有兩種類(lèi)型:顯式游標(biāo)和隱式游標(biāo)。在程序中用到的SELECT...INTO...查詢(xún)語(yǔ)句,一次只能從數(shù)據(jù)庫(kù)中提取一行數(shù)據(jù),對(duì)于這種形式的查詢(xún)和觸發(fā)器操作,系統(tǒng)都會(huì)使用一個(gè)隱式游標(biāo)。但是如果要提取多行數(shù)據(jù),就要由程序員定義一個(gè)顯式游標(biāo),并通過(guò)與游標(biāo)有關(guān)的語(yǔ)句進(jìn)行處理。顯式游標(biāo)對(duì)應(yīng)一個(gè)返回結(jié)果為多行多列的SELECT語(yǔ)句。
游標(biāo)一旦打開(kāi),數(shù)據(jù)就從數(shù)據(jù)庫(kù)中傳送到游標(biāo)變量中,然后應(yīng)用程序再?gòu)挠螛?biāo)變量中分解出需要的數(shù)據(jù),并進(jìn)行處理。以下將通過(guò)詳細(xì)的例子為您介紹顯式游標(biāo)和隱式游標(biāo)。
顯式游標(biāo):
.jpg)
1 定義游標(biāo)
CURSOR CUR_NAME P1,P2,...
IS
SELECT語(yǔ)句
--------------------
A. 該SELECT語(yǔ)句不可以是SELECT..INTO..語(yǔ)句.
B. 游標(biāo)可以有參數(shù),這些參數(shù)用來(lái)參與SELECT中的WHERE條件.
2 打開(kāi)游標(biāo): OPEN CUR_NAME P1,P2,...
A. 如果有參數(shù),則首先見(jiàn)實(shí)際參數(shù)傳遞給SELECT語(yǔ)句
B. 執(zhí)行SELECT語(yǔ)句.其結(jié)果將存在游標(biāo)中,并且可以用游標(biāo)名來(lái)進(jìn)行控制.
3 獲取數(shù)據(jù): FETCH CUR_NAME INTO 變量;
A. FETCH從第一行數(shù)據(jù)開(kāi)始,每FETCH一行數(shù)據(jù),自動(dòng)跳到下一行.直到FETCH了最后一行數(shù)據(jù)為止.
B. 如果使用普通變量來(lái)獲取數(shù)據(jù),那么,應(yīng)該根據(jù)游標(biāo)結(jié)構(gòu)中的字段來(lái)定義變量.
此時(shí),變量列表與游標(biāo)中的字段列表在類(lèi)型,順序,個(gè)數(shù)上一致.
C. 也可以使用記錄變量來(lái)獲取數(shù)據(jù). "記錄變量 游標(biāo)名%ROWTYPE";
此時(shí),該記錄變量的結(jié)構(gòu)與游標(biāo)的結(jié)構(gòu)完全一致.(注意,此處最好不要用表名).
4 關(guān)閉游標(biāo): CLOSE CUR_NAME;
例 查詢(xún)7788的員工姓名,職務(wù),工資.
DECLARE
V_ENAME EMP.ENAME%TYPE;
V_JOB EMP.JOB%TYPE;
-----------------------
--1.

CURSOR CUR_EMP
IS
SELECT ENAME,JOB FROM EMP WHERE EMPNO = 7788;
BEGIN
--2.
OPEN CUR_EMP;
--3.
FETCH CUR_EMP INTO V_ENAME,V_JOB;
DBMS_OUTPUT.PUT_LINE(V_ENAME||' '||V_JOB);
--4.
CLOSE CUR_EMP;
END;
本文內(nèi)容來(lái)自自互聯(lián)網(wǎng)公開(kāi)信息或用戶(hù)自發(fā)貢獻(xiàn),該文觀(guān)點(diǎn)僅代表作者本人,版權(quán)歸原作者所有。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。若發(fā)現(xiàn)侵權(quán)或違規(guī)內(nèi)容請(qǐng)聯(lián)系電話(huà)4008352114或郵箱442699841@qq.com,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
本站推薦
- 1工程施工企業(yè)合同管理之從創(chuàng)建到封閉的全面指南
- 2消防預(yù)警監(jiān)控系統(tǒng)全面升級(jí)改造清單涵蓋平臺(tái)功能、設(shè)備
- 3超融合服務(wù)器集群:全面配置與維保服務(wù)詳解
- 4裝飾工程廚房與衛(wèi)生間全面拆除工程
- 5工程企業(yè)衛(wèi)生間全面改造施工詳細(xì)清單
- 6工程企業(yè)廚房改衛(wèi)生間:墻柱面至天棚全面改造清單
- 7工程施工企業(yè)廚房全面拆除工程實(shí)施竣工清單明細(xì)
- 8企業(yè)ERP系統(tǒng)需求全面梳理與部門(mén)定制方案
- 9工程企業(yè)管理系統(tǒng)全面掌控項(xiàng)目成本與流程的得力助手

