PL / SQL:两个表之间的连接错误

时间:2015-06-14 12:00:06

标签: sql join plsql

我有一个任务,我必须使用游标显示来自两个不同表的信息。我尝试过以前做过的一个例子,但它似乎没有用!下面提到的是我必须从中获取记录并显示它们的两个表。

'的Emp'表

'Emp' Table

'系'表

'Dept' Table

我想显示他们工作的所有员工编号,姓名,工资,部门名称和部门位置。

以下是我的所作所为:

 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无效标识符的错误。我不明白这是什么问题,我希望有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

您的光标确实选择了d.dloc表的dept d,但在屏幕截图中将其命名为loc

CURSOR staff_cursor IS
  SELECT e.empno, e.ename, e.sal, d.dname, d.loc
  -- ...