一些背景:
我的框架jQuery jTable
允许我对列进行分页和排序,在我的选择查询中,我需要检索 n 行(从第 n 行到第 n 行),并且之前按所选列对数据进行排序。
我有一个包含 n 列的表,其中不存在某些行(这是一个示例):
为了实现第一个要求,我编写了以下过程:
create or replace
PROCEDURE PR_SHOWVALUESOLD
(
PRMROWMIN IN NUMBER
, PRMROWMAX IN NUMBER
, CURSORRESULT OUT SYS_REFCURSOR
) AS
BEGIN
open CURSORRESULT for
select * from
(select v.*, rownum r,
(
select count(*) TOTALITEMS from TABLE1 v
) TOTALITEMS
from TABLE1 v
) d
where d.r >= PRMROWMIN and d.r <= PRMROWMAX;
END PR_SHOWVALUESOLD;
这项工作成功,我使用以下参数(PRMROWMIN = 6,PRMROWMAX = 9)执行程序,程序的结果在Output Varibles window
.
现在是下一步,我需要在从 n 行到 x 行之前对数据进行排序。
我重写了执行此操作的过程,但不起作用:
CREATE OR REPLACE PROCEDURE PR_SHOWVALUES
(
PRMROWMIN IN NUMBER
, PRMROWMAX IN NUMBER
, PRMORDERCOL IN VARCHAR2
, PRMORDERDIR IN VARCHAR2
, CURSORRESULT OUT SYS_REFCURSOR
) AS
BEGIN
open CURSORRESULT for
select * from
(select v.*, rownum r,
(
select count(*) TOTALITEMS from TABLE1 v
) TOTALITEMS
from TABLE1 v
order by 'LOWER(' || PRMORDERCOL || ')' || ' ' || PRMORDERDIR
) d
where d.r >= PRMROWMIN and d.r <= PRMROWMAX;
END PR_SHOWVALUES;
我使用以下参数执行了修改后的过程:
PRMROWMIN := 6;
PRMROWMAX := 9;
PRMORDERCOL := 'COLUMNA';
PRMORDERDIR := 'DESC';
我期望突出显示的行Query Result 2 window
(但这个新过程检索与旧但无序的相同数据Output Variables Window
):
如何达到我的要求?
提前致谢。