[英]Oracle Sort inline view by variable name not working in PL SQL
非常感谢您关注我的问题。
摘要:我想按变量名称&pSortColumn对内联视图进行排序。 在查询中(见下文),它运行良好。 但是,在PL SQL中,不会进行排序!!!!
查询以下正确排序
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;
将排序子句添加到最外部的查询
对于使用“窗口”进行分页,可以执行以下操作:
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函数调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.