From: | "Raul Andres Duque" <ra_duque(at)yahoo(dot)com(dot)mx> |
---|---|
To: | "Jaime Casanova" <jcasanov(at)systemguards(dot)com(dot)ec>, "Edwin Quijada" <listas_quijada(at)hotmail(dot)com> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Retornando un select ...diferencias de Postgres y MSSQL |
Date: | 2008-10-30 21:05:17 |
Message-ID: | E72B70311B7C4F518E3FF251E813FD94@amadeus.net.co |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
>
>----- Original Message -----
>From: "Jaime Casanova" <jcasanov(at)systemguards(dot)com(dot)ec>
>To: "Edwin Quijada" <listas_quijada(at)hotmail(dot)com>
>Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
>Sent: Thursday, October 23, 2008 12:24 PM
>Subject: Re: [pgsql-es-ayuda] Retornando un select ...diferencias de
>Postgres y MSSQL
>
>On 10/23/08, Edwin Quijada <listas_quijada(at)hotmail(dot)com> wrote:
>>
>> Me ha tocado trabajar en estos dias con MSSQL y he visto algo interesante
>> y es que los Store procedure pueden retornar un set de datos , un
>> >select, pero con la desventaja de que este no puede ser usado en un
>> select.
>> A raíz de esto me gustaría hacer una pregunta a los que están cerca del
>> código Postgres, Alvaro y Jaime, cual es la razon mas técnica de porque
>> >Postgres no puede hacer esto,retornar una selección, sin tener que
>> declarar un tipo.
>> Esto me asalta porque me lo han preguntado varias veces y la verdad la
>> respuesta que he dado no se si me convence mucho o estoy equivocado.
>>
>
>si puedes...
>
>CREATE FUNCTION fsetdatos() RETURNS SETOF record AS
>begin
> return query select * from tabla;
> return;
>end;
>LANGUAGE plpgsql;
>
>
>claro que en el select deberas hacer algo como: "select * from
>fsetdatos(campo1 tipo1[, ...])"
>
>o puedes declarar los tipos como parametros OUT
>
>CREATE FUNCTION fsetdatos(out campo1 tipo1[, ...]) RETURNS SETOF record AS
>begin
> return query select * from tabla;
> return;
>end;
>LANGUAGE plpgsql;
>
>y en el select solo haces: "select * from fsetdatos()"
Jaime intenté realizar el ejercicio con los parametros tipo OUT (la primera
forma ya la había utilizado y funciona perfecto) pero ni siquiera pude
definir la función !!!
CREATE TABLE temporal
(
ide serial NOT NULL,
num integer,
fecha date,
CONSTRAINT pk_temporal PRIMARY KEY (ide)
)
WITH (OIDS=FALSE);
CREATE FUNCTION select_temporal(OUT valor integer) RETURNS SETOF record AS
$BODY$return select temporal.ide::integer;
return;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ERROR: function result type must be integer because of OUT parameters
********** Error **********
ERROR: function result type must be integer because of OUT parameters
SQL state: 42P13
Se me hace extraño que en nungún momento se asigne el valor al parametro
'valor'.
Atentamente,
RAUL DUQUE
Bogotá, Colombia
>--
>Atentamente,
>Jaime Casanova
>Soporte y capacitación de PostgreSQL
>Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo
agradecerán
From | Date | Subject | |
---|---|---|---|
Next Message | Erik Ferney Cubillos Garcia | 2008-10-30 21:10:39 | Re: Retornando un select ...diferencias de Postgres y MSSQL |
Previous Message | Edwin Quijada | 2008-10-30 20:45:46 | RE: Permiso para BD |