ORA-01422: точная выборка возвращает больше, чем запрошенное количество строк) отображается для триггера

Я устал создавать такой триггер, но он показывает эту ошибку

1 ответ

Решение

Эта ошибка указывает на то, что ваш запрос SELECT DNAME INTO DeptName ...возвращает более одной записи, поэтому его результат не может быть назначен скалярной переменной. Проблема с вашим запросом в том, что у вас есть ненужныйJOIN на purchase, поэтому он возвращает одну запись для каждой продажи, выполненной сотрудником, который только что совершил текущую продажу.

Я считаю, что ваш запрос можно упростить следующим образом:

SELECT d.dname INTO DeptName
FROM emp e
INNER JOIN dept d ON e.deptno = d.deptno
WHERE e.empno = :NEW.servedby;
Другие вопросы по тегам