Очень редко вам нужно использовать явно объявленный курсор. Привыкайте использовать циклы FOR для курсора:
create or replace function id_search(pinEmployee_ID in number)
return number
is
begin
for rowEmployee in (select ename
from employee
where emp_id = pinEmployee_ID)
loop
dbms_output.put_line('name is :' || rowEmployee.ename);
end loop;
return 0;
end id_search;
Там - короче, проще, менее подвержен ошибкам и проще для понимания.
Пожалуйста, используйте значимые имена. Мне все равно, если это школьное задание или что-то еще - используйте значимые имена. Не заставляйте людей копаться в вашем коде, чтобы выяснить, что означают или для чего используются ваши параметры.
Далее - пожалуйста, найдите время, чтобы отформатировать ваш код, чтобы он был читабельным. Делайте последовательные отступы, следите за тем, чтобы уровни кода были видны невооруженным глазом, вставляйте пробелы, чтобы ваш код можно было легко прочитать, правильно написать и разобрать. Я не хочу видеть i
для имени параметра - если то, что передается, является (должно быть) идентификатором сотрудника, то убедитесь, что имя параметра делает это очевидным. Компьютерное программирование - это прежде всего упражнение в общении - между вами, компьютером и бедным тупым SOB, который через десять лет должен будет прочитать ваш код и выяснить, что он делает. Не будьте парнем, на которого все ругаются, когда им приходится поддерживать ваш код. Развивайте хорошие привычки сейчас.
Программирование - это ремесло. Если это то, что вы действительно хотите сделать, работайте над тем, чтобы делать это хорошо. Каждое задание, каждый сценарий, каждый день - это возможность совершенствования. Или, по крайней мере, показать, что вы знаете. Убедитесь, что то, что вы показываете, всегда самое лучшее.