Нужно уточнить СУБД: процедура не везде может быть источником SELECT. В PostgreSQL для табличного результата используют функцию RETURNS TABLE, а процедуру вызывают через CALL.
Создай процедуру и сделай из неё SELECT.
Нужно уточнить СУБД: процедура не везде может быть источником SELECT. В PostgreSQL для табличного результата используют функцию RETURNS TABLE, а процедуру вызывают через CALL.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Нужно уточнить СУБД: процедура не везде может быть источником SELECT. В PostgreSQL для табличного результата используют функцию RETURNS TABLE, а процедуру вызывают через CALL.
Пример именно для PostgreSQL:
CREATE FUNCTION sample_rows()
RETURNS TABLE (id integer, name text)
LANGUAGE sql
AS $$
SELECT 1, 'Пример'::text;
$$;
SELECT * FROM sample_rows();
Это функция, не процедура. Если требование строго о CREATE PROCEDURE, нужен контракт получения результата: OUT-параметры, курсор или другой механизм выбранной СУБД. Подменять CALL конструкцией SELECT без учёта диалекта нельзя.