我有一个任务,我必须使用游标显示来自两个不同表的信息。我尝试过以前做过的一个例子,但它似乎没有用!下面提到的是我必须从中获取记录并显示它们的两个表。
'的Emp'表
'系'表
我想显示他们工作的所有员工编号,姓名,工资,部门名称和部门位置。
以下是我的所作所为:
set serveroutput on;
DECLARE
CURSOR staff_cursor IS
SELECT e.empno,e.ename,e.sal, d.dname, d.dloc FROM emp e, dept d
WHERE e.deptno = d.deptno;
v_eno emp.empno%type;
v_lname emp.ename%type;
v_esal emp.sal%type;
v_ddname dept.dname%type;
v_dloc dept.dloc%type;
BEGIN
DBMS_OUTPUT.PUT_LINE ('******************');
OPEN staff_cursor;
FETCH staff_cursor into v_eno, v_lname, v_esal, v_ddname, v_dloc;
WHILE staff_cursor%found LOOP
DBMS_OUTPUT.PUT_LINE (v_eno);
DBMS_OUTPUT.PUT_LINE (v_lname);
DBMS_OUTPUT.PUT_LINE (v_esal);
DBMS_OUTPUT.PUT_LINE ('******************');
DBMS_OUTPUT.PUT_LINE (v_ddname);
DBMS_OUTPUT.PUT_LINE (v_dloc);
FETCH staff_cursor into v_eno, v_lname, v_esal, v_ddname, v_dloc;
END LOOP;
CLOSE staff_cursor;
END;
它给我一些关于D.DLOC无效标识符的错误。我不明白这是什么问题,我希望有人可以帮助我。
答案 0 :(得分:1)
您的光标确实选择了d.dloc
表的dept d
,但在屏幕截图中将其命名为loc
。
CURSOR staff_cursor IS
SELECT e.empno, e.ename, e.sal, d.dname, d.loc
-- ...