RE: Llamar a procedimiento el pgsql

From: "Conrado Blasetti" <conrado(at)mapfre(dot)com(dot)ar>
To: "Emanuel Calvo Franco" <postgres(dot)arg(at)gmail(dot)com>, "pgsql-es-ayuda" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Llamar a procedimiento el pgsql
Date: 2009-01-14 13:04:22
Message-ID: 76A99F19229DC440909CF1B905F8012C072ED482@sar001998.Mapfre.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ups, me mataste...
Bien, lo voy a investigar a ver como resulta.
Gracias!

-----Mensaje original-----
De: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Emanuel Calvo Franco
Enviado el: Miércoles, 14 de Enero de 2009 11:01 a.m.
Para: pgsql-es-ayuda
Asunto: Re: [pgsql-es-ayuda] Llamar a procedimiento el pgsql

El día 14 de enero de 2009 10:49, Conrado Blasetti
<conrado(at)mapfre(dot)com(dot)ar> escribió:
> Gracias por responder, efectivamente no funciona.
>
> -----Mensaje original-----
> De: Alberto Cabello Sanchez [mailto:alberto(at)unex(dot)es]
> Enviado el: Miércoles, 14 de Enero de 2009 10:24 a.m.
> Para: Conrado Blasetti
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Asunto: Re: Llamar a procedimiento el pgsql
>
> On Wed, Jan 14, 2009 at 09:56:57AM -0200, Conrado Blasetti wrote:
>> Gente, buenos días.
>> Se puede desde pgsql llamar a un procedimiento con parámetros referenciando
>> cada parámetro como en Oracle?
>>
>> Llamo al proc: myProc ( param1 => valor1, param2 => valor2 );
>>
>> Se puede?
>
> No he podido encontrar una manera equivalente, pero eso en concreto no
> funcionará en PostgreSQL:
>
> CREATE FUNCTION echo(a integer) RETURNS integer AS $$
> DECLARE
> BEGIN
> return a;
> END;
> $$ LANGUAGE plpgsql;
>
> select echo(a=>1);
> ERROR: no existe la columna «a»
> LINEA 1: select echo(a=>1);
> ^
>

Pero se puede hacer compatible...
Se puede crear la referencia con un operador que ignore eso...

CREATE FUNCTION pg_catalog.referenciaOracle(text,text)
RETURNS text STRICT IMMUTABLE
LANGUAGE SQL AS 'SELECT $1;' ;

CREATE OPERATOR pg_catalog.=> (
PROCEDURE = referenciaOracle,
LEFTARG = text,
RIGHTARG = text
);

lo que si para llamarlo seria ( param1 => valor ) -- sin los ()

no lo probé, pero debería funcionar...

> --
> -----------------------
> Alberto Cabello Sánchez
> alberto(at)unex(dot)es
> --
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
> (envía "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
>

--
Emanuel Calvo Franco
ArPUG / AOSUG Member
Postgresql Support & Admin
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-01-14 13:17:31 Re: Llamar a procedimiento el pgsql
Previous Message Emanuel Calvo Franco 2009-01-14 13:00:30 Re: Llamar a procedimiento el pgsql