此错误表明您的查询SELECT DNAME INTO DeptName ...
返回多个记录,因此其结果不能分配给标量变量。您的查询的问题是您有一个不必要JOIN
的 on purchase
,因此它为刚刚进行当前销售的员工执行的每笔销售返回一条记录。
我相信您的查询可以简化如下:
SELECT d.dname INTO DeptName
FROM emp e
INNER JOIN dept d ON e.deptno = d.deptno
WHERE e.empno = :NEW.servedby;