如何使用记录变量检索游标实现中的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中使用。
我想检索每个分馆的学生人数。
答案 0 :(得分:0)
您应该为COUNT(a.applicantid)
定义别名,并通过此别名引用此列。
SELECT b.branchname, COUNT(a.applicantid) cnt FROM
...
DBMS_OUTPUT.PUT_LINE(v_branchrec.cnt);
答案 1 :(得分:0)
您需要做的就是:
在游标定义中使用COUNT(a.applicantid)列的别名:
SELECT b.branchname, COUNT(a.applicantid) as cnt
在LOOP
使用
DBMS_OUTPUT.PUT_LINE(v_branchrec.cnt);