Результаты процедуры множественного выбора процедуры postgresql в качестве вывода - PullRequest
0 голосов
/ 22 ноября 2018

Как мы получаем несколько наборов результатов из процедуры Postgresql.Ниже процедура, которую я создал, которая не работает.Я знаю, что это не то, как это работает в Postgresql, но я не могу найти требуемый ответ в любом месте.После этого мне нужно получить эти несколько наборов результатов в Java JDBC.

CREATE OR REPLACE PROCEDURE public.validate_user_login(
a_username character varying,
a_password character varying,
a_ip character varying,
a_uuid character varying,
a_appid integer,
a_osname character varying,
a_osversion character varying,
a_devicemake character varying,
a_devicemodel character varying,
a_devicelat numeric,
a_devicelong numeric
)
LANGUAGE 'plpgsql'

AS $BODY$

DECLARE
v_tenant_id INTEGER;
v_user_id INTEGER;
v_tenant_device_id INTEGER;
statuscode INTEGER;

BEGIN

select user_id  , tenant_id into v_tenant_id  , v_user_id
from public.users 
where username = a_username
and password = a_password;

if v_tenant_id > 0 AND v_user_id > 0 
then 
    statuscode := 1;

    select tenant_device_id into v_tenant_device_id from tenant_devices
    where tenant_id = v_tenant_id
    and uuid = a_uuid;

    insert into login_history (user_id , app_id , geo_lat , geo_long                 ,ip_address , tenant_device_id)
    VALUES (v_user_id, a_appid,a_devicelat ,a_devicelong , a_ip, v_tenant_device_id );
else
    statuscode := -1;
end if;


select user_id , username , email , phone_no, alt_phone_no
from public.users 
where username = a_username
and password = a_password 
limit 1;

select role_id from
public.user_roles
where user_id = v_user_id;

select statuscode;
END

$BODY$;
...