0

如何使用记录变量检索游标实现中的计数值?

DECLARE 

   CURSOR cur_branch IS
    SELECT b.branchname, COUNT(a.applicantid) 
      FROM branch b, applicant a
     WHERE b.branchid=a.optedbranch
     GROUP BY b.branchname ORDER BY b.branchname;

BEGIN

   DBMS_OUTPUT.PUT_LINE('Branch Name No of Applicants opted');

   FOR v_branchrec IN cur_branch
   LOOP

      DBMS_OUTPUT.PUT(RPAD(v_branchrec.branchname,20)||'    '); 
      DBMS_OUTPUT.PUT_LINE(v_branchrec.COUNT(applicantid));

   END LOOP;

END;

DBMS_OUTPUT.PUT_LINE(v_branchrec.COUNT(applicantid));这会在声明必须声明 COUNT 并且只能在 SQL 中使用而不能在 PL/SQL 中使用时引发错误。

我想检索每个分支机构的学生人数。

4

2 回答 2

0

您应该为该列定义一个别名COUNT(a.applicantid)并通过该别名引用该列。

 SELECT b.branchname, COUNT(a.applicantid) cnt FROM
...
 DBMS_OUTPUT.PUT_LINE(v_branchrec.cnt);
于 2013-03-16T21:26:30.017 回答
0

您需要做的就是:

  1. 在游标定义中为 COUNT(a.applicantid) 列使用别名:

      SELECT b.branchname, COUNT(a.applicantid) as cnt
    
  2. LOOP使用中

      DBMS_OUTPUT.PUT_LINE(v_branchrec.cnt);
    
于 2013-03-17T14:09:52.530 回答