0

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

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

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
4

1 回答 1

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您选择的变量COUNT (employee_id)

DBMS_OUTPUT.put_line (emp_id);
于 2012-11-13T05:56:23.420 回答