显示没有。使用匿名阻止的部门中的员工

时间:2012-11-13 05:34:09

标签: oracle

创建一个匿名块,显示指定部门编号的员工数(使用替换变量)。同时显示部门名称。

我已经尝试了但我不明白它为什么不运行,这是我的代码:

DECLARE 
dep_id NUMBER :=depid;
dep_name VARCHAR2(20);
emp_id NUMBER;

BEGIN
SELECT department_id, department_name
INTO dep_id, dep_name
FROM departments 
WHERE department_id = dep_id;

SELECT count(employee_id), department_id
INTO emp_id, dep_id
FROM employees
WHERE employee_id = department_id
DBMS_OUTPUT.PUT_LINE(count(employee_id));

EXCEPTION
 WHEN NO_DATA_FOUND THEN
  DBMS_OUTPUT.PUT_LINE(‘No such department');
 END

1 个答案:

答案 0 :(得分:0)

如果没有遇到性能问题以及最好的方法,似乎你必须解决一些问题:

1)dep_id NUMBER :=depid; - depid来自哪里? 如果您使用的是sqlplus,那么您可以

dep_id NUMBER := &depid;

这将提示用户输入depid。

2)DBMS_OUTPUT.put_line (COUNT (employee_id)); - COUNT (employee_id)是sql查询的一部分,你不能只从你的plsql代码“调用”它。 您应该使用您选择emp_id的{​​{1}}变量:

COUNT (employee_id)