多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > pl/sql之編寫分頁過程

pl/sql之編寫分頁過程

來源:程序員人生   發布時間:2014-10-24 08:00:01 閱讀次數:2079次
--開發一個包 
--建立一個包,在該包中,我定義類型test_cursor,是個游標。 如下: 
Sql代碼
  1. create or replace package testpackage as  
  2.   TYPE test_cursor is ref cursor;   
  3. end testpackage;   
--開始編寫分頁過程
create or replace procedure fenye
(table_name in varchar2,
page_size in number,        --每頁顯示的記錄數
page_now in number,          --當前頁
order_by in varchar2,                --附加--排序條件

total_rows out number,       --總記錄數
total_pages out number,      --總頁數
p_cursor out testpackage.test_cursor  --返回的記錄集
) is
--定義部分
--定義SQL語句的字符串
v_sql varchar2(500);
v_start number := (page_now-1)*page_size+1;
v_end number := page_now*page_size;
begin
--執行部分
v_sql:='select * from (select t1.*, rownum rn from (select * from '||table_name||' order by '||order_by||') t1 where rownum<='||v_end||') where rn>='||v_start;
--把游標和SQL關聯
open p_cursor for v_sql;
--計算總記錄數和總頁數
--組織另一個sql
v_sql:='select count(*) from '||table_name;
--執行上面的sql語句,并將返回值付給total_rows;
execute immediate v_sql into total_rows;
--計算total_pages(--總頁數)
if mod(total_rows, page_size)=0 then
  total_pages:=total_rows/page_size;
else 
  total_pages:=total_rows/page_size+1;
end if;
--此處不能關閉游標,否則在JAVA中調用時,會出現 游標已經關閉exception,導致取不到結果集
---close p_cursor;
end;
/

----------------------------------------------------------------------------------------------
--使用java測試 
//測試分頁 
package oracle.plsql.test.fenye;


import java.sql.*;


/**
 * //調用一個分頁的存儲過程
create or replace procedure fenye
(table_name in varchar2, --表名
page_size in number,         --每頁顯示的記錄數
page_now in number,          --當前頁
order_by in varchar2, --排序條件


total_rows out number,       --總記錄數
total_pages out number,      --總頁數
p_cursor out testpackage.test_cursor  --返回的記錄集
)
 */
public class TestPlSqlFenye {
public static void main(String[] args){  
Connection ct = null;
        CallableStatement cs = null;
        try{  
            //1.加載驅動  
            Class.forName("oracle.jdbc.driver.OracleDriver");  
            //2.得到連接  
            ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:BJSXT","scott","tiger");  
            //看看如何調用有返回值的過程   
            //3.創建CallableStatement   
            cs = ct.prepareCall("{call fenye(?,?,?,?, ?,?,?)}");   
  
            //4.給前4個?賦值   
            cs.setString(1, "emp");   
            cs.setInt(2, 6); //每頁顯示6條  
            cs.setInt(3, 1); //顯示第1頁
            cs.setString(4,"sal");
            //給后3個?注冊參數   
            cs.registerOutParameter(5, oracle.jdbc.OracleTypes.INTEGER);   //注意這里的這個類型
            cs.registerOutParameter(6, oracle.jdbc.OracleTypes.INTEGER);   //注意這里的這個類型
            cs.registerOutParameter(7, oracle.jdbc.OracleTypes.CURSOR);   //注意這里的這個類型
  
            //5.執行   
            cs.execute();      
            System.out.println(cs.getInt(5));
            System.out.println(cs.getInt(6));
            //得到結果集 ,在這里取出來的時候就是結果集了
            ResultSet rs=(ResultSet)cs.getObject(7);        
            
            while(rs.next()){   
                System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getFloat("SAL"));   
            }    
            
            
        } catch(Exception e){  
            e.printStackTrace();  
        } finally{  
            //6.關閉各個打開的資源  
            try {
cs.close();
ct.close();  
} catch (SQLException e) {
e.printStackTrace();
}  
        }
    }
}

-------------------------------------------------------------------------------------------
console顯示結果如下:
14
3
7369 SMITH 671.17
7900 JAMES 950.71
7876 ADAMS 1100.0
7521 WARD 1250.0
7654 MARTIN 1250.0
7934 MILLER 1300.0


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 婷婷色一二三区波多野衣 | 最新国产福利在线 | 最近中文字幕在线视频 | 欧洲一级毛片 | 亚洲校园激情 | 福利第一页 | 伊人久久网站 | 欧美性猛交xxxxx按摩国内 | 欧美一级人与动毛片免费播放 | 亚洲精品乱码久久久久久蜜桃 | 最近的中文字幕在线国语 | 精品国产欧美精品v | 色哟哟tv| 成人午夜免费在线观看 | 羞羞视频免费看网站 | 亚洲伊人久久大香线蕉啊 | 欧美亚洲精品在线 | 草的爽免费视频 | 国产日产欧美精品一区二区三区 | 国内精品久久久久影院嫩草 | 亚洲国产欧美日韩 | 性欧美性另类双性人互交 | chinesehd国产刺激对白 | 亚洲日韩精品欧美一区二区一 | 女人18毛片特级一级免费视频 | 最近中文国语字幕在线播放视频 | www.黄免费| 国产精品东北一极毛片 | 日本高清无吗免费播放 | 久久久国产在线 | 青青青青手机在线视频观看国产 | 欧美日韩国产精品综合 | 亚洲a级 | 欧美人成在线 | 91精品欧美一区二区综合在线 | 亚洲黄色一区 | 伦伦影院精品一区 | 亚洲福利视频一区二区 | 亚洲一区二区三区四区视频 | 欧美一区二区三区四区视频 | 香港三级吃孕妇奶水 |