Funcion con SELECT

From: Herman Estaban <hermanestaban(at)gmail(dot)com>
To: FORO POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Funcion con SELECT
Date: 2016-05-12 22:05:31
Message-ID: CAC-DekUS-POcRzWNKP5p1Vmesj=yxfdr2HZb9eWaEfkYgmBraw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

<http://www.postgresql.org/docs/current/static/sql-select.html>

Hola a todos, he estado buscando como crear una función con un SELECT
y leyendo en la documentación:

http://www.postgresql.org/docs/current/static/sql-select.html

Encontre el siguiente los siguientes ejemplos:

This example shows how to use a function in the FROM clause, both with and
without a column definition list:

CREATE FUNCTION distributors(int) RETURNS SETOF distributors AS $$
SELECT * FROM distributors WHERE did = $1;
$$ LANGUAGE SQL;

SELECT * FROM distributors(111);
did | name
-----+-------------
111 | Walt Disney

CREATE FUNCTION distributors_2(int) RETURNS SETOF record AS $$
SELECT * FROM distributors WHERE did = $1;
$$ LANGUAGE SQL;

SELECT * FROM distributors_2(111) AS (f1 int, f2 text);
f1 | f2
-----+-------------
111 | Walt Disney

Y hice pruebas con un select simple:

1ro:

CREATE OR REPLACE FUNCTION F_CONSULTA_PARAMETRO(VARCHAR) RETURNS SETOF
MA_PERSONAL AS $$
SELECT *
FROM MA_PERSONAL
WHERE IDCODIGO = $1;
$$ LANGUAGE SQL;

SELECT * FROM F_CONSULTA_PARAMETRO('000033');

2do:

CREATE OR REPLACE FUNCTION F_CONSULTA_PARAMETRO2(VARCHAR) RETURNS
SETOF record AS $$
SELECT APPATER || ' ' || APMATER || ' ' || NOMBRES AS PERSONA
FROM MA_PERSONAL
WHERE IDCODIGO = $1;
$$ LANGUAGE SQL;

SELECT * FROM F_CONSULTA_PARAMETRO2('000033') AS (PERSONA VARCHAR);

El 1ro retorna toda la tabla me puede servir para cosas simples que necesite.

El 2do me podria servir para select mas personalizados con joins pero
tendria que declarar siempre el campo o los campos de la tablas o
tablas involucradas en el select?

Hay manera de crear una función sin necesidad de estar declarando los campos?

Saludos

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Freddy Martinez 2016-05-13 03:24:19 PLPython en Windows
Previous Message Andrés P.P. 2016-05-12 13:55:41 Re: Failover para Streaming Replication