Re: [pgsql-ayuda] Funciones SQL + oferta de chamba (local, cd. de =?iso-8859-1?Q?m=E9xico?=)

From: Jesus Aneiros <aneiros(at)jagua(dot)cfg(dot)sld(dot)cu>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [pgsql-ayuda] Funciones SQL + oferta de chamba (local, cd. de =?iso-8859-1?Q?m=E9xico?=)
Date: 2000-07-13 17:14:15
Message-ID: Pine.LNX.4.10.10007131306320.20053-100000@jagua.cfg.sld.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Ruben voy a tratar de ayudarte.

On Wed, 12 Jul 2000, Rub� Marrero wrote:

> insert into table a values('ABC','qwerty');

Aqui es insert into a (sobra el table)

> create function up_date(text,text) returns a as '
> update a set dos=''$2'' where uno=''$1'';
> select * from a' as 'SQL';
> select up_date('ABC','el nuevo valor');
>
> y en lugar de regresarme un registro con el campo dos cambiado, me
> regresa un numero extra�!, no coincide con el oid del registro y
> evidentemente no cambia nada, cuando le doy select * from a, solo me da
> el valor original.

Debe ser dos = $2 y no ''$2'', lo mismo con el $1.

Lo otro es que no puedes retornar tipos compuestos sin manejarlos como
sencillos. Fijate que estas retornando todos los registros de a. Prueba

CREATE FUNCTION up_date(TEXT, TEXT)
RETURNS OID
AS 'UPDATE abc SET dos = $2 WHERE uno = $1;
SELECT OID FROM abc WHERE dos = $2;'
LANGUAGE 'SQL';

Te retornara el OID del registro actualizado (claro partiendo que hay uno
solo que cumple la condicion del where.

Saludos, Jesus.

--------- Pie de mensaje -------------------------------------------
Archivo historico: http://tlali.iztacala.unam.mx/maillist/pgsql-ayuda
Cancelar inscripcion:
mail to: majordomo(at)tlali(dot)iztacala(dot)unam(dot)mx
text : unsubscribe pgsql-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jesus Aneiros 2000-07-13 19:12:24 Re: [pgsql-ayuda] Campo autonumerico.
Previous Message Bolo Lacertus 2000-07-13 17:01:36 Re: [pgsql-ayuda] Funciones SQL + oferta de chamba (local, cd. de =?iso-8859-1?Q?m=E9xico?=)