日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

PLSQL 循环游标 cursor loop fetch into

發布時間:2025/3/15 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PLSQL 循环游标 cursor loop fetch into 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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;-----------(

fetch...into... 是SQL 里面獲取游標里的量 用到的 fetch 后是你的游標 into 后是你的變量exit when 是當什么時候退出。后面加條件 是SQL 里面獲取游標里的量 用到的 fetch 后是你的游標 into 后是你的變量exit when 是當什么時候退出。后面加條件

)

?

這三個參數是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;

?

?--fetch?的例子

?

??? SET SERVERIUTPUT ON ?
??? DECLARE ?
??? v_ename EMP.ENAME%TYPE; ?
??? v_salary EMP.SAL%TYPE; ?
??? CURSOR c_emp IS SELECT ename,sal FROM emp; ?
??? BEGIN ?
??? OPEN c_emp; ?
????FETCH?c_emp?INTO?v_ename,v_salary; ?
??? DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename ?
??? ||'is'|| v_salary); ?
????FETCH?c_emp?INTO?v_ename,v_salary; ?
??? DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename ?
??? ||'is'|| v_salary); ?
????FETCH?c_emp?INTO?v_ename,v_salary; ?
??? DBMS_OUTPUT.PUT_LINE('Salary of Employee'|| v_ename ?
??? ||'is'|| v_salary); ?
??? CLOSE c_emp; ?
??? END ;

總結

以上是生活随笔為你收集整理的PLSQL 循环游标 cursor loop fetch into的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。