PostgreSQL замечает мне ошибку, которая выглядит следующим образом:
ОШИБКА: назначение запроса данных результата не указано в запросе
Вот моя первоначальная функция созданияcode:
CREATE OR REPLACE FUNCTION public.scrolltable(
IN p_pagenumber integer,
IN p_pagesize integer)
RETURNS TABLE(name character varying, id character varying, rn bigint) AS
$BODY$
Declare v_startRow int;
v_endRow int;Begin
v_startRow := (p_pagenumber - 1) * p_pagesize + 1;
v_endRow := p_pagenumber * p_pagesize;
With Result as (
Select *,
ROW_NUMBER() OVER (Order By "ID" ASC)
From "Training"
)
select * from Result
Where row_number Between v_startRow AND v_endRow;
End;
$BODY$
LANGUAGE plpgsql
Я попытался выполнить только запросы на выборку, и он показал таблицу следующим образом:
------------------------------------------------------------------------
|<Name> | <ID> | <row_number> |
|<character varying(100)> | <character varying(100)> | <bigint> |
------------------------------------------------------------------------
Я вернул правильные типы данных для таблицы результатов, но почему явсе еще получаете эту ошибку?
ОБНОВЛЕНО: Спасибо за все ваши ответы.Я успешно исправил ошибку с таким видом:
CREATE OR REPLACE FUNCTION public.scrolltable(
IN p_pagenumber integer,
IN p_pagesize integer)
RETURNS TABLE(name character varying, id character varying, rownumber bigint) AS
$BODY$
Declare v_startRow int;
v_endRow int;Begin
v_startRow := (p_pagenumber - 1) * p_pagesize + 1;
v_endRow := p_pagenumber * p_pagesize;
RETURN QUERY With Result as (
Select *,
ROW_NUMBER() OVER (Order By "ID" ASC)
From "Training"
)
select * from Result
Where row_number Between v_startRow AND v_endRow;
End;
$BODY$
LANGUAGE plpgsql