oracle 存储过程分页

1.create or replace package page_package as 
2.type page_cursor is ref cursor;  
3.end page_package;  
4. 
5.create or replace procedure pageModel  
6.(page_now in number,  
7.page_size in number,  
8.table_name in varchar2,  
9.row_count out number,  
10.page_count out number,  
11.rs_list out page_package.page_cursor  
12.) is 
13.v_sql varchar2(1000);  
14.v_begin number:=(page_now-1)*page_size+1;  
15.v_end number:=page_size*page_now;  
16.begin 
17.      v_sql:='select * from (select rownum r,t.* from (select * from '||table_name||') t where rownum<='||v_end||') where r>='||v_begin;  
18.      open rs_list for v_sql;  
19.      v_sql:='select count(*) from '||table_name;  
20.      execute immediate v_sql into row_count;--立即执行此SQL语句,并将结果赋给row_count  
21.      if mod(row_count,page_size)=0 then 
22.         page_count:=row_count/page_size;  
23.      else 
24.         page_count:=row_count/page_size+1;  
25.      close rs_list;  
26.      end if;  
27.end; 

你可能感兴趣的:(sql,page)