Oracle 使用匿名块显示部门中的员工数
创建一个匿名块,该块将显示指定部门编号的员工人数(使用替换变量)。同时显示部门名称 我已经试过了,但我不明白为什么它不运行,下面是我的代码:Oracle 使用匿名块显示部门中的员工数,oracle,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 = de
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)
dep_id编号:=depid代码>-部门ID从哪里来?
如果您使用的是sqlplus,那么您可以
dep_id NUMBER := &depid;
这将提示用户输入depid
2) DBMS_OUTPUT.put_行(计数(员工id))代码>-COUNT(employee\u id)
是sql查询的一部分,您不能仅从plsql代码“调用”它。
您应该做的是使用您选择的COUNT(employee\u id)
变量emp\u id
:
DBMS_OUTPUT.put_line (emp_id);
你到底想通过这些来实现什么其中employee_id=部门id
和DBMS_OUTPUT.PUT_LINE(count(employee_id))代码>?