POSTGRES, как мне создать функцию или процедуру, которая возвращает результат запроса? - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть этот запрос, который возвращает запись, я хочу создать функцию или процедуру, которая возвращает каждый столбец запроса

CREATE FUNCTION sp_infr(
ano_inicial int, 
ano_final int)  RETURNS SETOF record AS $$
SELECT "I"."PTCodPapeleta",
"I"."PTFechaHora"::timestamp::date,
RTRIM("I"."PTCodInfraccion"),
"I"."PTCodPlaca",
"I"."PTNombApelConductor",
"I"."PTDniConductor","I"."PTCodiConductor","I"."PTDomiConductor",'',"I"."PTImporte"
FROM "t700infractrans" as "I","t700deudas" as "D"
WHERE EXTRACT(YEAR from "PTFechaHora") >= ano_inicial and EXTRACT(YEAR from "PTFechaHora") <= ano_final
and "I"."PTCodPapeleta" = "D"."CodPapel" and "D"."Estado" = 'P'
ORDER BY 2;
$$ LANGUAGE SQL;

SELECT OF FUCTION

select sp_infr(2014,2018);

RETURN

 sp_infr 
 -------------------------------------------------------
 (A1401008167,2014-01-01,M-3,S20874,"CASTRO CORDOVA JOSE RUSBER",#,00000521539,"TARAPOTO - JR JR. PROGRESO, 664","",1900.000)
 -------------------------------------------------------
 (A1401008216,2014-01-01,G-58,S13614,"ISUIZA  ISUIZA SEGUNDO JUSTO",45829634,00000547926,"TARAPOTO -  ,  - DIR.REFER.:JR. RAMON CASTILLA S/N - BELLAVISTA","",304.000)

(2 row)

Я хочу вернуть каждый столбец отдельно

PTCodPapeleta | PDTFechaHora | rtrim | PTCodPlaca | PTNombApelConductor | 
---------------+--------------+-------+------------+---------------------+ ...->>>>>
 A2015032603   | 2014-01-01   | G-59  |   S2332    |      Jet Lee
---------------|--------------|-------|------------|---------------------|
 ...
...