2

I need to return multiple values that I stored in declared variables, how can I do this using postgres? Maybe I dont need to use variables, but I need to return values from 3 tables. Queries and tables in example simplified

My example:

CREATE OR REPLACE FUNCTION public.select_multiple_values(id_ bigint)
 RETURNS setof record
 LANGUAGE plpgsql
AS $function$
declare
id_child bigint;
id_parent bigint;
name_ varchar;
begin
    select id from public.req where id = id_ into id_child;
    select reg_id from public.req where id = id_ into id_parent;
    select "name" from public.reg where id = id_parent into name_;

    return query select id_child, id_parent, name_ ;
END;
$function$
;
3

1 Answer 1

4

try this - you can use RETURN TABLE CONCEPT

CREATE OR REPLACE FUNCTION public.select_multiple_values(id_ bigint)
RETURNS TABLE(id_child bigint, id_parent bigint, name_ character varying ) 
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE PARALLEL UNSAFE
    ROWS 1000
    
AS $BODY$
declare p_id_child bigint;
declare p_id_parent bigint;
declare p_name_ character varying;
begin

    select id  into p_id_child from public.req where id = id_ ;
    select reg_id   into p_id_parent from public.req where id = id_;
    select "name"  into p_name_ from public.reg where id = id_parent ;

    
    return query select p_id_child as id_child, p_id_parent as id_parent, p_name_ as name_ ;
    
END
$BODY$;
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.