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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Oracle分页存储过程

發布時間:2023/11/27 生活经验 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle分页存储过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CREATE OR REPLACE Procedure Soa_Getpager(p_Pagesize       Int, --每頁記錄數p_Pageno         Int, --當前頁碼,從 1 開始p_Sqlcols        Varchar2, --選擇列p_Sqlfrom        Varchar2, --表名OR連接查詢p_Sqlwhere       Varchar2, --查詢子句p_Sqlorderby     Varchar2, --排序p_Outrecordcount Out Int, --返回總記錄數p_Outpagecount   Out Int, --返回總頁數Result           Out Sys_Refcursor) Asv_Sql       Varchar2(3000);p_Sqlselect Varchar2(3000);v_Count     Int;v_Heirownum Int;v_Lowrownum Int;
Begin----拼接SQL查詢語句p_Sqlselect := 'select ' || p_Sqlcols || ' from ' || p_Sqlfrom || ' ' ||p_Sqlwhere || ' ' || p_Sqlorderby;Dbms_Output.Put_Line(p_Sqlselect);----取記錄總數v_Sql := 'select count(1) from (' || p_Sqlselect || ')';Execute Immediate v_SqlInto v_Count;p_Outrecordcount := v_Count;----取總頁數p_Outpagecount := p_Outrecordcount / p_Pagesize;If p_Outpagecount = 0 Thenp_Outpagecount := 1;End If;----執行分頁查詢v_Heirownum := p_Pageno * p_Pagesize;v_Lowrownum := v_Heirownum - p_Pagesize + 1;v_Sql := 'SELECT *FROM (SELECT A.*, rownum rnFROM  ( ' || p_Sqlselect || ') AWHERE rownum <= ' || To_Char(v_Heirownum) || ') BWHERE rn >= ' || To_Char(v_Lowrownum);--注意對rownum別名的使用,第一次直接用rownum,第二次一定要用別名rn
Dbms_Output.Put_Line(v_Sql);Open Result For v_Sql;End Soa_Getpager;

?

轉載于:https://www.cnblogs.com/huhangfei/p/5000771.html

總結

以上是生活随笔為你收集整理的Oracle分页存储过程的全部內容,希望文章能夠幫你解決所遇到的問題。

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