程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle存儲過程中分頁,用java代碼來完成

Oracle存儲過程中分頁,用java代碼來完成

編輯:Oracle數據庫基礎

Oracle存儲過程,中涉及到分頁時,我建議你用Java代碼來調用Oracle存儲過程,如果你是Oracle的熱捧者。那麼下面的文章對於你而言一定很有意義。以下的文章就是對相關內容的描述。

create table emp(

  1. id int,  
  2. ename varchar2(30),  
  3. sale number(7,2)  

共7位最大就是這樣的數據
)

開發一個包-

  1. create or replace package testpackage as  
  2. type test_cursor is ref cursor;  
  3. end testpackage; 

開始寫分頁的過程

  1. create or replace procedure fenye  
  2. (tableName in varchar2,  
  3. pagesizes in number, 

一頁顯示記錄
 

  1. pageNow in number,  
  2. myrows out number, 

總記錄數

  1. myPageCount out number, 

總頁數

  1. p_cursor out testpackage.test_cursor 

返回的記錄集
)is

定義變量

定義sql語句 字符串-

  1. v_sql varchar2(1000); 

定義sql長度

定義兩個整數

  1. v_begin number:=(pageNow-1)*pagesizes+1;  
  2. v_end number:=pageNow*pagesizes; 

開始執行-

  1. v_sql:='select * from   
  2. (select t1.*,rownum rn from ( select * from '||tableName||' order by sale) t1 where rownum<='||v_end||')  
  3. where rn>='||v_begin; 

把游標和sql關聯

  1. open p_cursor for v_sql; 

計算myrows和mypageCount,組織了一個sql 語句

  1. v_sql:='select count(*) from '||tableName; 

執行sql,並把返回的值,賦給 myrows

  1. execute immediate v_sql into myrows; 

執行字符串的sql語句 必須格式,計算mypageCount

  1. if mod(myrows,pagesizes)=0 then  
  2. myPageCount:=myrows/pagesizes;  
  3. else  
  4. myPageCount:=myrows/pagesizes+1;  
  5. end if; 

關閉游標

  1. close p_cursor;- 

必須關閉游標,不是不能釋放占有的空間,這很重要

  1. end; 

以上文章就是使用Java代碼 調用Oracle 存儲過程的描述。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved