PL/SQL:两个表之间的联接错误
我有一个任务,其中我必须使用光标显示来自两个不同表的信息。我试着用我们以前做过的一个例子来做,但它似乎不起作用!下面提到的是我必须从中获取记录并显示它们的两个表 “Emp”表 部门表 我想显示他们工作的所有员工编号、姓名、工资、部门名称和部门所在地 以下是我所做的:PL/SQL:两个表之间的联接错误,sql,join,plsql,Sql,Join,Plsql,我有一个任务,其中我必须使用光标显示来自两个不同表的信息。我试着用我们以前做过的一个例子来做,但它似乎不起作用!下面提到的是我必须从中获取记录并显示它们的两个表 “Emp”表 部门表 我想显示他们工作的所有员工编号、姓名、工资、部门名称和部门所在地 以下是我所做的: set serveroutput on; DECLARE CURSOR staff_cursor IS SELECT e.empno,e.ename,e.sal, d.dname, d.dloc FROM emp e,
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无效标识符的错误信息。我不明白是什么问题,我希望有人能帮我解决。您的光标确实选择了表
dept d
的d.dloc
,但在您的屏幕截图中它被命名为loc
CURSOR staff_cursor IS
SELECT e.empno, e.ename, e.sal, d.dname, d.loc
-- ...
请停止使用隐式连接语法(逗号分隔的
FROM
子句),优先显式列出连接(FROM emp e join dept d ON e.deptno=d.deptno
),谢谢!这很有效。。