创建一个匿名块,显示指定部门编号的员工数(使用替换变量)。同时显示部门名称。
我已经尝试了但我不明白它为什么不运行,这是我的代码:
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
答案 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)