Oracle游標使用參考語句

2021-08-30 20:51:19 字數 2695 閱讀 4499

乙個簡單實用:

declare

-- 宣告游標

cursor mycur is

select * from emp;

empinfo emp%rowtype;

cou number;

begin

-- 游標操作使用迴圈,但是在操作之前必須先將游標開啟

for empinfo in mycur loop

cou := mycur%rowcount;

dbms_output.put_line('行號:' || cou || ' 雇員編號:' || empinfo.empno || ' 雇員姓名:' || empinfo.ename);

end loop;

end;

迴圈取出資料的兩種寫法:

declare

-- 宣告游標

cursor mycur is

select * from emp; -- list (emppo)

empinfo emp%rowtype;

cou number;

begin

-- 游標操作使用迴圈,但是在操作之前必須先將游標開啟

if mycur%isopen then

null;

else

open mycur;

end if;

-- 使游標向下一行

fetch mycur

into empinfo;

-- 判斷此行是否有資料被發現

while (mycur%found) loop

cou := mycur%rowcount;

dbms_output.put_line('行號:' || cou || ' 雇員編號:' || empinfo.empno || ' 雇員姓名:' || empinfo.ename);

-- 修改游標,繼續向下

fetch mycur

into empinfo;

end loop;

end;

第二種寫法:

declare

-- 宣告游標

cursor mycur is

select * from emp;

empinfo emp%rowtype;

cou number;

begin

-- 游標操作使用迴圈,但是在操作之前必須先將游標開啟

if mycur%isopen then

null;

else

open mycur;

end if;

loop

-- 使游標向下一行

fetch mycur

into empinfo;

exit when mycur%notfound;

cou := mycur%rowcount;

dbms_output.put_line('行號:' || cou || ' 雇員編號:' || empinfo.empno || ' 雇員姓名:' || empinfo.ename);

end loop;

end;

在儲存過程中使用游標

create or replace procedure myproc(oi_return out integer) is

cursor mycur is

select * from emp_0915;

empinfo emp_0915%rowtype;

cou number;

exc_return exception; -- 程式中間返回自定義異常

begin

if mycur%isopen then

null;

else

open mycur;

end if;

loop

fetch mycur

into empinfo;

exit when mycur%notfound;

cou := mycur%rowcount;

dbms_output.put_line(cou || '開始更新...');

update emp_0915 t set t.sal = t.sal + 1 where t.empno = empinfo.empno;

dbms_output.put_line(cou || '更新結束...');

end loop;

commit;

oi_return := 1;

exception

when exc_return then

rollback;

oi_return := 0;

end;

在oracle中測試:

declare

re integer;

begin

myproc(re);

if re = 1 then

dbms_output.put_line(re || ':執行結束。。。');

else

dbms_output.put_line(re || ':執行錯誤_______');

end if;

end;

oracle 游標使用

create or replace function errortyperead return varchar2 is result varchar2 3000 type cursor type is ref cursor tempname varchar2 100 cursor testcur i...

oracle游標使用

在進行pl sql程式設計時,我們都會使用游標,游標有兩種,一種是顯式游標,使用類似如下方式 open 游標 loop fetch into exit when notfound end loop close 游標 另一種是隱式游標,使用類似如下 for 游標變數 in 游標 loop 賦值變數 游...

Oracle游標使用

一,什麼是游標 遍歷查詢結果集的一種機制。二,為什麼避免使用游標 盡量避免使用游標,因為游標的效率較差 如果使用了游標,就要盡量避免在游標迴圈中再進行表連線的操作。三,使用游標的步驟 靜態游標 1,宣告一些變數,用來儲存游標遍歷過程的臨時資料 2,宣告游標,並且指定查詢 3,開啟游標 4,從游標中獲...