CREATE OR REPLACE PROCEDURE sp_Page
(
whichPage                  IN       INT DEFAULT NULL,
PageSize                   IN       INT DEFAULT NULL,
RsCount                    IN  OUT  INT,
pageCount                  IN  OUT  INT
)
AS  
BEGIN 

SELECT COUNT(*) INTO sp_Page.RsCount 
FROM  myTable; 
pageCount  :=  RsCount / PageSize;
SELECT * 
FROM         
(SELECT *
FROM
(SELECT * 
  FROM myTable  
  ORDER BY ID DESC)
WHERE ROWNUM<=PAGESZIE*WhichPage)
        WHERE ROWNUM<=PageSize; 
END;
/

解决方案 »

  1.   

    CREATE OR REPLACE PROCEDURE sp_Page
    (
    whichPage                  IN       INT,
    pageSize                   IN       INT,
    rsCount                    IN  OUT  INT,
    pageCount                  OUT  INT
    )
    AS
    BEGIN

      SELECT COUNT(*) INTO rsCount FROM myTable;
      pageCount  :=  rsCount / pageSize;
      SELECT * FORM(SELECT * FROM(SELECT * FROM myTable ORDER BY ID DESC) WHERE ROWNUM<=pageSize*whichPage) WHERE ROWNUM<=pageSize;
    END;
    /