Oracle 变量范围在查询的内部游标中不可用

Oracle 变量范围在查询的内部游标中不可用,oracle,scope,cursor,Oracle,Scope,Cursor,在下面的查询中,我不能在最内部的查询中使用c.college\u id,因为它超出了范围,但是否有任何解决方案可以在最内部的查询中使用c.college\u id值,并且我不想在查询内部调用“coll\u details”,因为这会影响性能 WITH coll_details AS (SELECT cd.college_id , cd.college_name FROM college_det

在下面的查询中,我不能在最内部的查询中使用c.college\u id,因为它超出了范围,但是否有任何解决方案可以在最内部的查询中使用c.college\u id值,并且我不想在查询内部调用“coll\u details”,因为这会影响性能

WITH  coll_details AS (SELECT   cd.college_id
                        ,   cd.college_name
                   FROM     college_details cd
                  )
SELECT   c.college_name
     CURSOR ( SELECT    o.department
              FROM      (SELECT tc.department
                              , ROW_NUMBER() OVER(ORDER BY tc.college_id) rnum
                         FROM   temp_college tc
                         WHERE  tc.college_id  = c.college_id
                        ) o
             WHERE     o.rnum BETWEEN 1 AND 3 
            )
FROM     coll_details c

您需要做的是在最里面的子查询中包含
college\u id
,然后在游标语句上进行筛选:

SELECT   c.college_name
    , CURSOR ( select department from (
                  SELECT   tc.college_id 
                           , tc.department
                           , row_number() over (partition by tc.college_id 
                                                     order by tc.department_id) rn
              FROM  temp_college tc
                  ) tc
                  where tc.college_id  = c.college_id 
                  and rn <= 3
            ) coll_depts
FROM college_details  c
/

注意:由于示例数据,演示使用了
2
分页。

我已经编辑了问题,请看一下。。我在这里使用分页的概念,所以我必须使用内部游标作为将来的参考,请发布一套完整的要求。发布不完整或半生不熟的问题只会浪费人们的时间。而这并不是对待那些你要求帮助你的人的方法。
COLLEGE_NAME     COLL_DEPTS
---------------- --------------------
FOX COLLEGE      CURSOR STATEMENT : 2

CURSOR STATEMENT : 2

DEPARTMENT
--------------------
PHYSICS
LATIN

BEETLE COLLEGE   CURSOR STATEMENT : 2

CURSOR STATEMENT : 2

DEPARTMENT
--------------------
ETYMOLOGY
EARTH SCIENCE

KNOX INSTITUTE   CURSOR STATEMENT : 2

CURSOR STATEMENT : 2

DEPARTMENT
--------------------
ASTROPHYSICS
COMPUTER SCIENCE


SQL>