create or replace procedure proc_omeet_page(  
       page  int,--第几页 
       perPageCount int ,--每页几条记录 
       totalPage out int,--总页数 
       pageResultSet out SYS_REFCURSOR --当前页查询出来的结果集   
)  
as  
   totalCount int;--总记录数 
   pageSql varchar(2000); --查询某页结果的SQL语句 
begin  
  select count(1) into totalCount from scott.v_meetinfo;  --查询总记录数 
  totalPage := ceil( totalCount / perPageCount);   --算出总页数 
  pageSql := 'select * from v_meetinfo u   
    where rn between '||(page-1)||'*'||perPageCount||'+1 and '||(page*perPageCount);  
   open pageResultSet for pageSql;  
end proc_omeet_page; declare   
   pageResult  SYS_REFCURSOR; --存放结果的变量 
   questions_type v_meetinfo%rowtype;   
   totalPage  int;--总页数 
 begin  
    proc_omeet_page(1,2,totalPage,pageResult);  
    fetch pageResult into questions_type;  
   while pageResult%found loop  
      dbms_output.put_line(questions_type.miuiid); 
      fetch pageResult into questions_type;  
    end loop;  
   close pageResult;  
end;
commit;为什么会是错误的呢?求解

解决方案 »

  1.   

    v_meetinfo
    你的这个应该是一个视图,其中的rn只是rownum或row_number()的一个别名而已
      

  2.   

    嗯。看了很半天也没想个明白。您的意思是rn就相当于rownum还是rn就是视图里面的一个字段?
      

  3.   

    我知道了,其实rn就是rownum。学术不精,见笑了
      

  4.   

    对于你的视图来说,是里面的一个字段,对于视图内部来说,是rownum或row_number()的一个别名而已