游標的基本操作

2021-07-22 20:05:34 字數 1995 閱讀 3575

有時候希望能夠對瞞住特定條件的記錄逐一進行更新處理,可以使用 for update字句的游標

declare

cursor c_cur is

select usernaem,jop from aspnet_user where sal<3000 for update of sal;

begin

open c_cur

wherne c_cur%found loop

update asp_users set sal=3000 where current or c_cur;

end loop;

close c_cur;

commit;

迴圈loop

fetch c1 into my_record

exit when c1%notfound

end loop;

批量取得游標中的資料(可以用bulk collect字句批量繫結資料)

這樣就能一次性從結果中取得所有的記錄

declare type numtab is table of aspnet_user.userno%type;

type nametabb is table of aspnet_user.user%type;

nums numtab;

names  nametab;

cusor is select userno,usernames from aspnet_user where jop='倉庫員';

begin

open c1;

fetch c1;

bulk collect into nums,names;

...close c1;

end;

例子declaae v_userno varchar2(20);

v_usernmae nvarchar2(50);

cursor c_user is

select userno,username from apsnet_users;

begin

open c_users;

loop

fet c_users into v_userno,v_username

wxit thwn c_uses%notfound;

dbms_output.put_line(v_userno||'對應'||v_username);

end loop;

close c_users;

end;

游標屬性if c1%isopen then

..else ;

open c1;

end if;

%not found 屬性

fetcth c1 into my_username,my_salary;

exit when c1%notfound;

..end loop;

%rowcount 屬性

loop

fetch c1

into my_username ,my_salary

if c1%rowcount>10 then

..end if;

..end loop;

每乙個顯示的游標和游標變數都有4個屬性  %found ,%found,%isopen ,%notfound 和rowcount;

%found 屬性

loop

fetch  c1

into my_username ,my_salary;

if c1%found then

..else

exit;

end ifl

end loop;

%isopen屬性

為游標for迴圈傳遞引數

ref cursor 型別可以是強型別也可以是若型別

delcare type empcurtype is ref cursor return employees%rowtype;

type genericcurtyp is ref cursor;

游標的基本應用

一 使用游標的理由。我本是乙個用mssql多的程式設計師,所以習慣上是用select 語句的多,但經oracle資深應用人員介紹,游標在第一次執行時比select慢,但以後用同乙個游標卻會快很多。所以現在的erp裡很多東西都用游標來寫。二 游標格式 普通格式 declare cursor rec i...

PL SQL Cursor游標的基本使用

cursor 游標是sql的乙個記憶體工作區,由系統或使用者以變數的形式定義。游標的作用就是用於臨時儲存從資料庫中提取的資料塊。cursor型別包含三種 靜態游標 分為顯式 explicit 游標和隱式 implicit 游標 ref游標 是一種引用型別,類似於指標。顯式游標 1 顯式cursor的...

SQL Server游標的基本用法

sql server游標的基本用法 2011年03月01日 sql server中使用游標的基本步驟 1 建立游標,語法 declare cursorname cursor for sql 2 開啟游標,語法 open cursorname 3 操作游標 移動游標 語法 fetch next fro...