Цикл данных в хранимой процедуре в Postgres - PullRequest
1 голос
/ 24 января 2020

У меня есть таблица fpo, в которой у меня есть несколько полей, и я передаю имя юниверса uname при вызове хранимой процедуры. Основываясь на этом имени юниверса, мне нужно объединить разные поля для разных имен юниверсов, чтобы сгенерировать universe key, и мне нужно собрать sh все эти ключи юниверса для json объекта, который я буду использовать позже для l oop в та же самая хранимая процедура.

Я написал приведенный ниже код, но он возвращает только один ключ юниверса. Где, как я написал предел 100, он должен вернуть 100 значений.

CREATE OR REPLACE FUNCTION file_compare(
    uname character varying,
    tb_name text)

    RETURNS text
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
    AS $BODY$
    declare 
    p_bene_first_name text;
    p_bene_last_name text;
    p_card_id text;
    p_auth_num text;
    p_date text;
    universe_key text;

    begin

    select bene_first_name, bene_last_name, card_id, authentication, created_date
    INTO
    p_bene_first_name ,p_bene_last_name, p_card_id, p_auth_num, p_date from fpo
    limit 100;


    IF (uname = 'UNI_1') 

    THEN

        SELECT NULLIF(p_card_id, '') || NULLIF(p_auth_num, '') INTO universe_key;

    ELSEIF (uname = 'UNI_2') 

    THEN

        SELECT NULLIF(p_card_id, '') || NULLIF(p_date, '') INTO universe_key;

    END IF;
    return universe_key;
    end;
$BODY$;

пример данных

 bene_first_name  bene_last_name   card_id   authentication   created_date

     ABC               G             1256      2e4thjjk6        12/12/2018
     PQR               A             3456      h4j48545k        02/02/2019

В соответствии с моим требованием, я должен получить нижеприведенное после select и pu sh это в некоторый пример переменной fpo_json_data

 [{fname": "ABC","lname":"G", "cardid": "1256", "auth": "2e4thjjk6", "cdate": "12/12/2018"},{fname": "PQR","lname":"A", "cardid": "3456", "auth": "h4j48545k", "cdate": "02/02/2019"}]

Затем мне нужно l oop через fpo_json_data и создать ключи юниверса, объединяющие поля, и pu sh эти ключи юниверса в другую переменную json, которая мне нужна вернуть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...