oracle 游標 講解

2021-06-07 03:24:46 字數 1336 閱讀 7542

plsql 迴圈游標 cursor 的一點心得體會

set serveroutput on---------------列印輸出資訊,預設是false

declare --------------------申明變數,分號結束

v_pages number;

v_numberperpage number;

v_totalpages number;

v_cur        sys_refcursor;

diy_id  number;

diy_name varchar2(50);

diy_date date;

cursor c_list is select * from  table_user  i where i.id=4;

begin

----------------給變數初始化值

v_pages:=1;

v_numberperpage:=20;

--呼叫的sp,引數分別是pages number 要查詢的頁數,numberperpage number 每頁顯示幾條  ,tatalpages number 輸出引數,返回結果集總頁數 , resultcursor cursor 結果集游標,返回查詢結果

my_test_sp(v_pages,v_numberperpage,v_totalpages,v_cur);

------------第一種迴圈游標方式,最簡單高效

for c in c_list loop

dbms_output.put_line('使用者的id='||c.id); -------------輸出結果集

end loop;

----------第二種迴圈游標方式

open v_cur ------開啟游標,但是如果有這**會提示錯誤,所以我執行的時候是注釋這**的,很奇怪,不知道什麼原因

loop

fetch v_cur into diy_id,diy_name,diy_date;-----------這三個引數是my_test_sp輸出的游標引數返回的值,剛好3個字段,如果這裡少些任何乙個字段,plsql會提示錯誤,不能少

exit when v_cur%notfound; ----------定義跳出迴圈的條件,當每頁記錄則跳出

dbms_output.put_line('報表id='||diy_id||',報表名='||diy_name);--------輸出結果

end loop;

close v_cur;---------關閉游標

dbms_output.put_line(v_totalpages);

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 初識游標

游標大串燒 一 游標分類 1.靜態游標 編譯時才確定elect語句。1 隱式游標 使用者不能直接控制的靜態游標 自動開,自動取,自動關 當使用者用update,delete,insert,select 帶into 時,自動產生隱式游標。游標名字為 sql 相關屬性 found,notfound,is...

oracle游標總結

1.利用游標顯示職工號 來廠日期 職位 部門號 部門名 部門所在地 工資所處的等級。declare outempno int outhiredate date outjob varchar 10 outdeptno int outloc varchar 10 outgrade int cursor ...