游標的理解

2022-09-02 05:09:07 字數 1465 閱讀 2275

一、游標(用來儲存多條查詢資料的一種資料結構(結果集),它有乙個指標,用來從上往下移動,從而達到遍歷每條記錄的作用)

如何編寫乙個游標?

1、宣告游標

declare cursor cur_name

is + 想要進行的操作;

定義資料的方式type/rowtype;

2、開啟游標

open cur_name;

3、提取資料

fetch 

4、關閉游標

eg:提取t_emp中的資料

declaer cursor cur 

is select * from t_emp;

r_emp t_emp%rowtype;

begin

open cur;

fetch cur into r_emp;

dbms_output.put_line('id:'||r_emp.id);

close;

end;

如何判斷是否到了結果集的尾部,

oracle中,對於游標的屬性,它通過屬性值來判斷的

1)%notfound 到了游標尾部,沒有記錄了,就返回true 

2)%found 用於檢驗游標是否成功,通常在fetch語句前使用,當游標按照條件查詢一條記錄是,返回true 

3)%isopen 判斷游標是否開啟

4)rowcount 獲得影響的行數

二、游標的分類:

1、靜態游標 在執行前,明確知道sql語句游標

a) 顯示游標

使用者自己寫的sql語句,編譯時能明確知道sql語句

b) 隱式游標

dml(增、刪、改、查詢單條記錄)會用隱式游標,該變數名不需要使用者自己宣告,

它由系統幫我們定義,叫sql。

影視游標的使用:通過%rowcour判斷是有使用了。 使用時不要字機定義應是游標,它由系統定義

2、動態游標 在執行前不知道sql語句游標,執行時才知道sql語句的游標。

a) 強型別游標

b) 弱型別游標

三、游標的作用:(拿出結果集中的一行)

游標是對映在結果集中一行資料上的位置實體,有了游標,使用者就可以訪問結果集中的任意一行資料了,

將游標放置到某行後,即可對該行資料進行操作,例如提取當前行的資料等。

游標實際上是一種能從包括多條資料記錄的結果集中每次提取一條記錄的機制。游標充當指標的作用。

儘管游標能遍歷結果中的所有行,但他一次只指向一行。

概括來講,sql的游標是一種臨時的資料庫物件,即可以用來存放在資料庫表中的資料行副本,也可以指向儲存在資料庫中的資料行的指標。

游標提供了在逐行的基礎上操作表中資料的方法。

游標的乙個常見用途就是儲存查詢結果,以便以後使用。游標的結果集是由select語句產生,如果處理過程需要重複使用乙個記錄集,

那麼建立一次游標而重複使用若干次,比重複查詢資料庫要快的多。

oracle 游標的理解

游標的狀態是通過屬性來表示。found fetch語句 獲取記錄 執 況true or false。是否指向有效行。notfound 最後一條記錄是否提取出true or false。isopen 游標是否開啟true or false。rowcount 游標當前提取的行數 所謂游標就是有沒有乙個箭...

理解游標(3)隱式游標的使用

當我們執行dml或select into時,pl sql引擎會為我們宣告乙個隱式游標並管理這個游標 之所以謂之 隱式 是因為和游標相關的工作資料庫已經替我們自動做好了 我們使用隱式游標,實際就是期待返回一行,這裡有乙個原則 對於單行記錄查詢,我們應該總是將它封裝到乙個位於包裡的函式,把這個查詢隱藏在...

MS SQL游標的使用及理解

與windows或dos的 游標 不同,ms sql的游標是一種臨時的資料庫物件,既對可用來旋轉儲存在系統永久表中的資料行的副本,也可以指向儲存在系統永久表中的資料行的指標。游標為您提供了在逐行的基礎上而不是一次處理整個結果集為基礎的操作表中資料的方法。1 如何使用游標 1 定義游標語句 decla...