oracle游標的定義使用

2022-04-04 02:27:41 字數 4402 閱讀 7747

2008-02-23 15:12:57

|  分類:

oracle|字型大小

訂閱游標中定義的引數只要定義型別,不用定義長度,精度等;

游標使用一:

declare

cursor mycur is --宣告游標

select * from a;

myrec a%rowtype; --宣告與表字段相同的記錄

begin

open mycur;--開啟游標

fetch mycur into myrec;

while mycur%found loop

dbms_output.put_line(myrec.col1||':'||myrec.col2);

fetch mycur into myrec;

end loop;

close mycur;

end;

/游標使用二: 使用引數

declare

cursor mycur(id varchar) is

select col2 from a where col1=id;

myrec a.col2%type; 

begin

open mycur('1');

loop

fetch mycur into myrec;

exit when mycur%notfound;

dbms_output.put_line(myrec);

end loop;

close mycur;

end;

/游標使用二: 使用引數二for迴圈,在for迴圈中不用宣告游標,也不用開啟關閉

declare

cursor mycur(id varchar) is

select col2 from a where col1=id;

begin

for myrec in mycur('1') loop

dbms_output.put_line(myrec.col2);

end loop;

end;

/判讀游標是否開啟,如果沒有開啟

declare

myrec a.col2%type;

cursor mycur(id varchar) is

select col2 from a where col1=id;

begin

if mycur%isopen then//判讀開啟

dbms_output.put_line('游標開啟了');

else 

open mycur('1'); 

end if;

fetch mycur into myrec;

close mycur;

dbms_output.put_line(myrec);

end;

/利用游標獲得資料行數

declare

t_name varchar(10);

cursor mycur is

select col2 from a;

begin

open mycur;

loop

fetch mycur into t_name;//資料填充到游標

exit when mycur%notfound or mycur%notfound is null;

end loop;

dbms_output.put_line(mycur%rowcount);

close mycur;

end;

/利用游標update資料

declare

cursor cur is

select col1 from a for update;//for update 是必須的

temp varchar(10);

begin

open cur;

fetch cur into temp;

while cur%found loop

update a set col1=col1||'_why' where current of cur;//current of cur也是必須的

fetch cur into temp;

end loop;

close cur;

end;

/游標中定義的引數只要定義型別,不用定義長度,精度等;

游標使用一:

declare

cursor mycur is --宣告游標

select * from a;

myrec a%rowtype; --宣告與表字段相同的記錄

begin

open mycur;--開啟游標

fetch mycur into myrec;

while mycur%found loop

dbms_output.put_line(myrec.col1||':'||myrec.col2);

fetch mycur into myrec;

end loop;

close mycur;

end;

/游標使用二: 使用引數

declare

cursor mycur(id varchar) is

select col2 from a where col1=id;

myrec a.col2%type; 

begin

open mycur('1');

loop

fetch mycur into myrec;

exit when mycur%notfound;

dbms_output.put_line(myrec);

end loop;

close mycur;

end;

/游標使用二: 使用引數二for迴圈,在for迴圈中不用宣告游標,也不用開啟關閉

declare

cursor mycur(id varchar) is

select col2 from a where col1=id;

begin

for myrec in mycur('1') loop

dbms_output.put_line(myrec.col2);

end loop;

end;

/判讀游標是否開啟,如果沒有開啟

declare

myrec a.col2%type;

cursor mycur(id varchar) is

select col2 from a where col1=id;

begin

if mycur%isopen then//判讀開啟

dbms_output.put_line('游標開啟了');

else 

open mycur('1'); 

end if;

fetch mycur into myrec;

close mycur;

dbms_output.put_line(myrec);

end;

/利用游標獲得資料行數

declare

t_name varchar(10);

cursor mycur is

select col2 from a;

begin

open mycur;

loop

fetch mycur into t_name;//資料填充到游標

exit when mycur%notfound or mycur%notfound is null;

end loop;

dbms_output.put_line(mycur%rowcount);

close mycur;

end;

/利用游標update資料

declare

cursor cur is

select col1 from a for update;//for update 是必須的

temp varchar(10);

begin

open cur;

fetch cur into temp;

while cur%found loop

update a set col1=col1||'_why' where current of cur;//current of cur也是必須的

fetch cur into temp;

end loop;

close cur;

end;

/隱是游標

begin

for cur in(select * from a) loop

dbms_output.put_line(cur.col1||':'||cur.col2);

end loop;

end;

/

oracle游標的使用

當select語句從資料庫中返回的記錄多餘一條時,就可以使用游標 cursor 游標可以理解為一次訪問乙個的一組記錄。select語句將列提取到游標中,然後根據游標取得記錄。使用游標時需要遵從以下的5個步驟 1 宣告一些變數,用於儲存select語句返回列值 2 宣告游標,並制定select語句 3...

oracle游標的使用

游標 cursor 也稱之為游標,從字面意思理解就是游動的游標。游標是對映在結果集中一行資料上的位置實體。游標是從表中檢索出 結果集,並從中每次指向一條記錄進行互動的機制。cursor 游標名 引數名 資料型別 引數名 資料型別 is select 語句 示例 無參游標 cursor c emp i...

ORACLE游標的使用

1 游標的說明 游標是一種向包含多條資料記錄的結果集中每次讀取一行的機制,逐行處理查詢結果,以程式設計的方式訪問資料庫。可以把游標當成指標,可以指定結果集中的任何位置,然後允許使用者對指定位置的資料進行操作。sql的游標是一種臨時資料庫物件,可以臨時存放資料表中的資料行副本,也可以指向儲存在資料表中...