курсор не печатает данные

Мне нужно решить одну задачу.

Создайте процедуру, которая перечисляет всех сотрудников, у которых зарплата находится в пределах ± 1000 от введенного значения (любая переменная). В отчете будут перечислены: employee_id, first_name, last_name, Hire_date и зарплата.

Рассматривать случай, когда нет сотрудника, у которого зарплата находится в диапазоне введенного значения.

Вызовите процедуру для значения 10000.

Я написал это, процедура скомпилирована, и когда я ее вызываю, она просто печатает успешно завершенную процедуру PL/SQL. Но нет данных из моей базы данных.

set serveroutput on;
create or replace procedure tisicka
  (p_salary in employees.salary%type)
is 
begin
  for cur_r in 
    (select employee_id, first_name, last_name, hire_date, salary 
     from employees where salary between p_salary+1000 and p_salary-1000
    )
  loop
    dbms_output.put_line(cur_r.employee_id ||', '|| cur_r.first_name ||', '|| cur_r.last_name ||', '||
      cur_r.hire_date ||', '|| cur_r.salary);
  end loop;
end tisicka;

exec tisicka(10000);

Не могли бы вы мне помочь?

Спасибо.


person Kristina    schedule 01.06.2021    source источник
comment
Вы уверены, что есть сотрудники, чья зарплата составляет от 9 000 до 11 000?   -  person Justin Cave    schedule 01.06.2021
comment
@Justin Cave Да, я уверен   -  person Kristina    schedule 01.06.2021


Ответы (1)


Вам нужно переключить предложение BETWEEN с

between p_salary+1000 and p_salary-1000

to

between p_salary-1000 and p_salary+1000
person BobC    schedule 01.06.2021
comment
Спасибо большое, работает! :) @BobC - person Kristina; 01.06.2021