在asp.net连接sql server时分页会写。但是连接oracel时怎么样实现分页啊,oracel不支持top关键字
飞要用伪列rownum嘛,如果要用的话,请告诉一下怎么写,实现分页功能,高手进!!!!!!急急

解决方案 »

  1.   

    http://hi.baidu.com/%CF%EB%C1%CB%D2%BB%C7%A7%C1%E3%D2%BB%D2%B9/blog/item/23ed72fb81ec489f59ee90b9.html
    http://hi.baidu.com/lixuewengg2007/blog/item/ad7479d1a536033d9b5027d6.html
      

  2.   

    SELECT * FROM (SELECT ROWNUM AS NUMROW, A.* FROM (SELECT * FROM foo ORDER BY xxx) A) WHERE NUMROW>? AND NUMROW<=?
      

  3.   

    可使用存储过程分页,还可使用第三方控件
    procedure sp_Page(p_PageSize int,          
                      p_PageNo int,           
                      p_SqlSelect varchar2,    
                      p_OutRecordCount out int,
                      p_OutCursor out refCursorType)
    as
        v_sql varchar2(3000);
        v_count int;
        v_heiRownum int;
        v_lowRownum int;
    begin
      v_sql := 'select count(*) from (' || p_SqlSelect || ')';
      execute immediate v_sql into v_count;
      p_OutRecordCount := v_count;
      v_heiRownum := p_PageNo * p_PageSize;
      v_lowRownum := v_heiRownum - p_PageSize + 1;  v_sql := 'SELECT * 
                FROM (
                      SELECT A.*, rownum rn 
                      FROM  ('|| p_SqlSelect ||') A
                      WHERE rownum <= '|| to_char(v_heiRownum) || '
                     ) B
                WHERE rn >= ' || to_char(v_lowRownum) ;
      OPEN p_OutCursor FOR  v_sql;end sp_Page;procedure sp_Page(p_PageSize int,         
                      p_PageNo int,            
                      p_SqlSelect varchar2,    
                      p_SqlCount varchar2,    
                      p_OutRecordCount out int,
                      p_OutCursor out refCursorType)
    as
        v_sql varchar2(3000);
        v_count int;
        v_heiRownum int;
        v_lowRownum int;
    begin
      execute immediate p_SqlCount into v_count;
      p_OutRecordCount := v_count;
      v_heiRownum := p_PageNo * p_PageSize;
      v_lowRownum := v_heiRownum - p_PageSize + 1;  v_sql := 'SELECT * 
                FROM (
                      SELECT A.*, rownum rn 
                      FROM  ('|| p_SqlSelect ||') A
                      WHERE rownum <= '|| to_char(v_heiRownum) || '
                     ) B
                WHERE rn >= ' || to_char(v_lowRownum) ;
      
      OPEN p_OutCursor FOR  v_sql;end sp_Page;http://topic.csdn.net/u/20080613/13/7cf35d45-619d-46a4-84ba-e5faf570f0bb.html