因为工作原因遇到一个oracle存储过程的问题,因为本人对此没有接触过,所以请教高手以下的代码错在哪里。
题目要求是这样的:定义游标emp_cur。通过使用游标FOR循环,逐个显示某部门员工的姓名和雇佣日期,并在每名员工姓名前加上序号。
DECLARE      
v_specialty EMP01.specialty%TYPE;
 CURSOR emp_cur              
 IS
     SELECT name, hiredate   
       FROM EMP01          
     WHERE deptno = v_specialty;     
BEGIN
     v_specialty : = &specialty;       
     DBMS_OUTPUT.PUT_LINE (‘序号 员工姓名 雇佣日期’);  
     FOR emp _record IN emp _cur LOOP          
       DBMS_OUTPUT.PUT_LINE (emp _cur%ROWCOUNT||'  
'|| emp _record.name ||'  '||emp_record. hiredate);   
    END LOOP;
  END

解决方案 »

  1.   

    conn scott/tiger;
    create table emp01 as select * from emp;
    set serveroutput on;
      DECLARE
     v_specialty EMP01.deptno%TYPE;
     CURSOR emp_cur
     IS
         SELECT ename, hiredate
           FROM EMP01
         WHERE deptno = v_specialty;
     BEGIN
         v_specialty := &specialty;
         DBMS_OUTPUT.PUT_LINE ('deptno empname empdate');
         FOR emp_record IN emp_cur LOOP
         DBMS_OUTPUT.PUT_LINE (emp_cur%ROWCOUNT||'  '|| emp_record.ename ||'  '||emp_record.hiredate);
         END LOOP;
       END;
    /