Как исправить ошибку "в запросе нет назначения для данных результата" при вызове созданной процедуры?

Создал процедуру в PostgreSQL при помощи которой хочу легко фильтровать зарплаты в нужных мне диапазонах:

CREATE PROCEDURE select_salary_range (minSalary INT, maxSalary INT)
LANGUAGE 'plpgsql'
AS $$

BEGIN

SELECT id, first_name, salary FROM person1 WHERE (person1.salary >= minSalary) AND (person1.salary <= maxSalary);
COMMIT;

END;
$$;

При вызове созданной процедуры вот таким образом:

CALL select_salary_range(5000, 6000);

получаю ошибку "ОШИБКА: в запросе нет назначения для данных результата"

В чем моя ошибка? Помогите. Правильно ли создана процедура? В чем ошибка?


Ответы (1 шт):

Автор решения: Stefanov.sm

Кажеться Вам нужна функция, а не процедура. Pl/pgsql Вам тоже не нужен.

create or replace FUNCTION select_salary_range (minsalary integer, maxsalary integer)
returns table (id integer, first_name text, salary integer)
language sql as
$$
 select p.id, p.first_name, p.salary 
 from person1 as p
 where p.salary BETWEEN minsalary AND maxsalary;
$$;
-- вызов
SELECT * from select_salary_range(5000, 6000);
→ Ссылка