非常感谢您提前查看我的问题。
要点: 我想按变量名称& pSortColumn对内联视图进行排序。 在Query(见下文)中,它运行良好。但是,在PL SQL中,没有进行排序!!!
下面查询SORTED正确
SELECT RUV2.*
FROM
(SELECT ROWNUM AS ROW_ID, RUV1.*
FROM
(SELECT
ru.ENTERPRISE_ID,
ru.LEGAL_NAME
FROM
TB_REPORTING_UNIT ru
WHERE ru.REFYEAR = 2012
ORDER BY &pSortColumn
) RUV1
) RUV2 ;
PL SQL下面没有排序
OPEN cur_ReportingUnit FOR
SELECT RUV2.*
FROM
(SELECT ROWNUM AS ROW_ID, RUV1.*
FROM
(SELECT
ru.ENTERPRISE_ID,
ru.LEGAL_NAME
FROM
TB_REPORTING_UNIT ru
WHERE ru.REFYEAR = 2012
ORDER BY pSortColumn
) RUV1
) RUV2 ;
LOOP
FETCH cur_ReportingUnit INTO mRow_Id, mEnterprise_ID, mLegal_Name ;
EXIT WHEN (cur_ReportingUnit%notfound) ;
DBMS_OUTPUT.PUT_LINE (mEnterprise_ID || ' --- ' || mLegal_Name ) ;
END LOOP;
答案 0 :(得分:1)
将排序子句添加到最外层的查询
答案 1 :(得分:0)
对于带有“窗口”的分页,您可以执行以下操作:
select e.*
from ( select e.*
, row_number()
over
(order by uur_id) ive$idx$
from bubs_uren_v e
where ( uur_id = :w1 )
) e
where ive$idx$ between (:start_index + 1) and (:start_index + :max_row_count)
我们在项目管理套件中使用此代码,该套件处理大量数据。不要问我Oracle是如何做到的,但它一直很快。请记住只包含您需要的列,保存处理,内存甚至PL / SQL函数调用。