Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 使用匿名块显示部门中的员工数_Oracle - Fatal编程技术网

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))