SELECT emp_id INTO high_payed_emp_id FROM (SELECT emp_id from cursor_table ORDER BY emp_salary DESC) WHERE rownum = 1;
Я пытаюсь получить emp_id из макс.оплачиваемый сотрудник сообщение об ошибке: ORA-00905: отсутствует ключевое слово
Мне кажется, это самый простой подход для выбора сотрудников с максимальной зарплатой в Oracle:
select emp_id from cursor_table where emp_salary = (select max(emp_salary) from cursor_table)
SELECT emp_id INTO high_payed_emp_id FROM (SELECT emp_id from cursor_table WHERE emp_salary = (select max(emp_salary) from cursor_table))a
Вместо этого используйте FETCH FIRST, добавьте WITH TIES, чтобы получить оба, если есть два (или более) с одинаковой максимальной зарплатой:
FETCH FIRST
WITH TIES
SELECT emp_id FROM cursor_table ORDER BY emp_salary DESC FETCH FIRST 1 ROW WITH TIES
Вам нужен правильный синтаксис sql
insert INTO high_payed_emp_id (emp_id) select * from ( SELECT emp_id FROM cursor_table ORDER BY emp_salary DESC ) WHERE ROWNUM <= 1;