0

レコード変数を使用してカーソル実装でcountの値を取得するにはどうすればよいですか?

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 に答える