From: | Juanky Moral <juanky(dot)moral(at)gmail(dot)com> |
---|---|
To: | Esteban Osorio <eosorio(at)economia(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ayuda con Consultas dinámicas en pl/pgsql |
Date: | 2005-01-11 19:55:39 |
Message-ID: | 463a53a405011111553384fbcd@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Marcelo Retamal acaba de postear un ejemplo muy claro:
Hola, existe otra opción de creación de una f(x) para retornad dos valores.
1º crear un tipo de registro, asi como
create type nombre_tipo (campo_tipo1 as tipo de dato,....campo_tipon as
tipo de dato);
2 º crear la función que retornará el tipo de datos:
create function nombref(x)(campo1,campo2,...campo_n) returns nombre_tipo
as ' declare...
3º Definir una variable del tipo de registro:
variable_tipo nombre_tipo%rowtype;
4º Cuando obtienes los valores que necesitas asignas el resultado de esta
forma:
variable_tipo.campo_tipo1 := registro.camposelect;
5º Devolver el registro de esta forma:
return variable_tipo;
Aquí hay un ejemplo concreto:
drop type registro_sda cascade;
create type registro_sda as (numero varchar(8),ficticio boolean);
create function proc_busqueda_numeros_sda(int,int,varchar(6)) returns
registro_sda as '
declare
planta alias for $1;
ciclo alias for $2;
troncal alias for $3;
myrec record;
registro registro_sda%rowtype;
begin
select sda_snumero,sda_bficticio into myrec from sda where
sda_nplanta = planta and sda_nciclo = ciclo
and sda_stroncal = troncal;
if not found then
registro.numero := '' '';
registro.ficticio := ''false'';
else
registro.numero := myrec.sda_snumero;
registro.ficticio := myrec.sda_bficticio;
end if;
return registro;
end;
'language 'plpgsql';
On Tue, 11 Jan 2005 16:07:18 -0400, Esteban Osorio <eosorio(at)economia(dot)cl> wrote:
>
>
> Hola a todos:
>
> Alguien tiene algún ejemplo de manejo de consultas dinámicas dentro del
> lenguaje pl/pgsql que pudiese compartir. Estuve viendo la documentación pero
> no me queda para nada claro.
>
>
> De antemano gracias a cualquier aporte.
>
>
> Esteban.
--
Juanky Moral
(desde Valencia, España)
"El universo no fue hecho a medida del hombre; tampoco le es hostil:
Es indiferente."
-- Carl Sagan.
From | Date | Subject | |
---|---|---|---|
Next Message | Reyes Abraham Orozco Macias | 2005-01-11 20:00:11 | Codificacion de la Base de datos |
Previous Message | Grover Navia | 2005-01-11 19:24:22 | Relacionar Tablas |