我有一个表fpo
,其中有多个字段,并且在调用存储过程时传递了Universe名称uname
。基于此Universe名称,我需要为不同的Universe名称连接不同的字段以生成universe key
,并且需要将所有这些Universe键推送到json对象,稍后将在同一存储过程中使用它进行循环。 / p>
我写了下面的代码,但是它只返回单个Universe键。正如我写的限制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
根据我的要求,我必须在选择后获得以下内容并将其推送到一些变量示例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"}]
然后,我必须遍历fpo_json_data并创建连接字段的Universe密钥,并将这些Universe密钥推送到另一个需要返回的json变量中