Я пытаюсь написать хранимую процедуру. Мне нужно получить идентификатор факультета с помощью идентификатора. Идентификаторы уникальны, но когда я пытаюсь извлечь факультет, я получаю ошибку: точная выборка возвращает больше, чем запрошенные строки.
Я проверил много похожих вопросов о сообществе оракулов и переполнении стека, но не получил правильных ответов
Моя хранимая процедура выглядит следующим образом:
CREATE OR REPLACE PROCEDURE updateStatus(id IN int)
IS
facid varchar2(10);
total_count int;
accepted_count int;
rejected_count int;
design varchar2(25);
BEGIN
SELECT facultyid INTO facid FROM TEMP_LEAVE_DETAILS WHERE id=id;
SELECT design INTO design FROM FACULTY WHERE facultyid=facid;
SELECT COUNT(*) INTO total_count FROM CLASS_ADJUST WHERE id=id;
SELECT COUNT(*) INTO accepted_count FROM CLASS_ADJUST WHERE id=id AND
accepted='Accepted';
SELECT COUNT(*) INTO rejected_count FROM CLASS_ADJUST WHERE id=id AND
accepted='Rejected';
IF(total_count=accepted_count) THEN
IF design='hod' THEN
UPDATE TEMP_LEAVE_DETAILS SET appr_by='Principal' WHERE id=id;
ELSE
UPDATE TEMP_LEAVE_DETAILS SET appr_by='HOD' WHERE id=id;
END IF;
END IF;
END;
Я получаюэта ошибка при выполнении процедуры:
BEGIN UPDATESTATUS (23);END;
*
ОШИБКА в строке 1:
ORA-01422: точная выборка возвращает больше запрошенного количества строк
ORA-06512: в"SYSTEM.UPDATESTATUS", строка 9
ORA-06512: в строке 1
Пожалуйста, помогите мне решить эту ошибку с помощью некоторого решения и, если возможно, объясните, почему это не работаетЗаранее спасибо