監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 簽約案例 | 購買價格 | 在線試用 | 手機APP | 產品資料
X 關閉

全面解讀數據庫中游標的使用方法

申請免費試用、咨詢電話:400-8352-114

文章來源:泛普軟件

數據庫中游標的使用方法(上)

游標是系統(tǒng)為用戶開設的一個數據緩沖區(qū),存放SQL語句的執(zhí)行結果。由系統(tǒng)或用戶以變量的形式定義。用戶可以用SQL語句逐一從游標中獲取記錄,并賦給主變量,交由主語言進一步處理,主語言是面向記錄的,一組主變量一次只能存放一條記錄在某些情況下,需要把數據從存放在磁盤的表中調到計算機內存中進行處理,最后將處理結果顯示出來或最終寫回數據庫。這樣數據處理的速度才會提高,否則頻繁的磁盤數據交換會降低效率。用數據庫語言來描述游標就是映射在結果集中一行數據上的位置實體,有了游標,用戶就可以訪問結果集中的任意一行數據了,將游標放置到某行后,即可對該行數據進行操作,例如提取當前行的數據等。

游標有兩種類型:顯式游標和隱式游標。在程序中用到的SELECT...INTO...查詢語句,一次只能從數據庫中提取一行數據,對于這種形式的查詢和觸發(fā)器操作,系統(tǒng)都會使用一個隱式游標。但是如果要提取多行數據,就要由程序員定義一個顯式游標,并通過與游標有關的語句進行處理。顯式游標對應一個返回結果為多行多列的SELECT語句。

游標一旦打開,數據就從數據庫中傳送到游標變量中,然后應用程序再從游標變量中分解出需要的數據,并進行處理。以下將通過詳細的例子為您介紹顯式游標和隱式游標。

顯式游標:

1 定義游標

CURSOR CUR_NAME P1,P2,...

IS

SELECT語句

--------------------

A. 該SELECT語句不可以是SELECT..INTO..語句.

B. 游標可以有參數,這些參數用來參與SELECT中的WHERE條件.

2 打開游標: OPEN CUR_NAME P1,P2,...

A. 如果有參數,則首先見實際參數傳遞給SELECT語句

B. 執(zhí)行SELECT語句.其結果將存在游標中,并且可以用游標名來進行控制.

3 獲取數據: FETCH CUR_NAME INTO 變量;

A. FETCH從第一行數據開始,每FETCH一行數據,自動跳到下一行.直到FETCH了最后一行數據為止.

B. 如果使用普通變量來獲取數據,那么,應該根據游標結構中的字段來定義變量.

此時,變量列表與游標中的字段列表在類型,順序,個數上一致.

C. 也可以使用記錄變量來獲取數據. "記錄變量 游標名%ROWTYPE";

此時,該記錄變量的結構與游標的結構完全一致.(注意,此處最好不要用表名).

4 關閉游標: CLOSE CUR_NAME;

例 查詢7788的員工姓名,職務,工資.

 

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;

發(fā)布:2007-04-21 14:04    編輯:泛普軟件 · xiaona    [打印此頁]    [關閉]
相關文章:
長春OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢

泛普長春OA行業(yè)資訊其他應用

長春OA軟件 長春OA新聞動態(tài) 長春OA信息化 長春OA快博 長春OA行業(yè)資訊 長春軟件開發(fā)公司 長春門禁系統(tǒng) 長春物業(yè)管理軟件 長春倉庫管理軟件 長春餐飲管理軟件 長春網站建設公司