Я пытаюсь написать простой запрос, используя курсоры, но продолжаю получать эту пресловутую ошибку «недопустимый курсор». Вот мой код.
DECLARE
v_deptno NUMBER := 10;
c_last_name employees.last_name%TYPE;
c_salary employees.salary%TYPE;
c_manager_id employees.salary%TYPE;
CURSOR c_emp_cursor IS
SELECT last_name, salary, manager_id FROM employees
WHERE department_id = v_deptno;
BEGIN
--OPEN c_emp_cursor;
-- commented out because for loop opens the cursor automatically
FOR employee IN c_emp_cursor
LOOP
FETCH c_emp_cursor INTO c_last_name, c_salary, c_manager_id;
EXIT WHEN c_emp_cursor%NOTFOUND;
IF c_salary < 5000 THEN
IF c_manager_id = 101 OR c_manager_id = 124 THEN
dbms_output.put_line(c_last_name || 'due for a raise.');
ELSE
dbms_output.put_line(c_last_name || ' not due for a raise.');
END IF;
END IF;
END LOOP;
--CLOSE c_emp_cursor;
END;
Что может быть не так и каково решение для этого? Я уже пытался применить возможные решения для похожих вопросов, но ни один из них не соответствует моей проблеме.