小编PAN*_*786的帖子

oracle中使用存储过程进行分页和排序

我创建了一个用于分页的存储过程。现在我正在寻找列排序。

我的工作分页存储过程:

PROCEDURE paging (PageSize     IN     INT,
                  PageIndex    IN     INT,
                  SortColumn   IN     VARCHAR,
                  PageData        OUT Page) AS
    FirstIndex   INT;
    LastIndex    INT;
    SortCol      VARCHAR;
BEGIN
    LastIndex := PageSize * (PageIndex + 1);
    FirstIndex := LastIndex - PageSize + 1;
    SortCol := SortColumn;

    OPEN PageData FOR
        SELECT *
          FROM (SELECT a.*, ROWNUM AS rnum
                  FROM (  SELECT *
                            FROM table_name
                        ORDER BY SortCol) a
                 WHERE ROWNUM <= LastIndex)
         WHERE rnum >= FirstIndex;
END paging;
/
Run Code Online (Sandbox Code Playgroud)

sql oracle stored-procedures

5
推荐指数
1
解决办法
6975
查看次数

标签 统计

oracle ×1

sql ×1

stored-procedures ×1