---currIndex当前页码  pageSize每页显示的记录数
create or replace procedure proc_PageSize(currIndex in  number,pageSize in number)
is
begin
select *
  from (select  t.*,row_number() over(order by lsh) rankid
from c1_menu t order by t.lsh) c1_menu
 where rankid > currIndex * pageSize
   and rankid <= (currIndex * pageSize) + pagesize;
 end;exec procedure proc_PageSize 1,10创建的时候报PLS-00428:在此select语句中缺少INTO子句,求oracle高手指点,因为从事NET开发Oracle用的很少,最近
一个项目用oracle,语法和sql还是有很大区别,求解决!

解决方案 »

  1.   

    create or replace procedure proc_PageSize(currIndex in number,pageSize in number)
    is
    begin
    select * 
    from
    (select *,row_number() rankid
    from c1_menu t order by t.lsh) c1_menu
     where rankid > currIndex * pageSize
      and rankid <= (currIndex * pageSize) + pagesize;
     end;
      

  2.   

    create or replace procedure proc_PageSize(currIndex in number,pageSize in number)
    is
       -----这里声明一个记录
    begin
    select *   into  ------这里写上记录名
      from (select t.*,row_number() over(order by lsh) rankid
    from c1_menu t order by t.lsh) c1_menu
     where rankid > currIndex * pageSize
      and rankid <= (currIndex * pageSize) + pagesize;
     end;
     
      

  3.   


    create or replace procedure proc_PageSize(currIndex in number,pageSize in number)
    ..--页码和每页 显示的记录数。 
    /**
    1.查处来的结果 应该 放入游标 作为 输出参数
    2.查询 sql 给 游标 赋值
    如下 :
    **/
    create or replace procedure proc_PageSize(currIndex in number,pageSize in number,
    refCur_rs out SYS_REFCURSOR)
    is 
    begin
    open refCur_rs for 
    select * 
    from
    (select *,row_number() rankid
    from c1_menu t order by t.lsh) c1_menu
     where rankid > currIndex * pageSize
      and rankid <= (currIndex * pageSize) + pagesize;
     end;
    程序中调用存储过程 得到 输出参数 refCur_rs,这个就是 查得的结果集。
      

  4.   


    创建的时候报错,逗号是中文的我改过来了以后还是报错
    错误信息:
    PL/SQL:ORA-00923:未找到要求的from关键字
    PL/SQL:SQL Statement ignored
    你把我的数据表和字段换成你的表和字段,测试一下能创建通过后再贴上来,然后我再参考的改。
      

  5.   


    同样的报:
    PL/SQL:ORA-00923:未找到要求的from关键字
    PL/SQL:SQL Statement ignored
    里面的select语句没有问题,但是过程创建报错??
      

  6.   


    1.分页sql 是这么写的吗?
    2.你的问题在哪里,是分页sql不会写,还是 存储过程不会写? 
    3.你应该去看看提问的智慧碰到问题最好是 把你的 问题描述清楚、把你的环境sql贴上来(建表、或测试数据)
    create or replace procedure proc_PageSize(currIndex in number,pageSize in number,
    refCur_rs out SYS_REFCURSOR)
    is
    begin
    open refCur_rs for
    select *
      from (select t.*, rownum rn
              from c1_menu   t
             where rownum <= currIndex * pageSize
             order by t.lsh)
     where rn > (currIndex * pageSize) + pagesize;
     end;