From: | Jairo Sánchez <jairosll(at)gmail(dot)com> |
---|---|
To: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Fwd: Error 42601 al crear una funcion |
Date: | 2007-03-12 16:47:27 |
Message-ID: | 59f843f50703120947i191868ads8e73036c1bc107e4@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
---------- Forwarded message ----------
From: Jairo Sánchez <jairosll(at)gmail(dot)com>
Date: Mar 12, 2007 11:42 AM
Subject: Re: [pgsql-es-ayuda] Error 42601 al crear una funcion
To: Miguel Bernilla Sánchez <mbernilla(at)sedapal(dot)com(dot)pe>
On 3/12/07, Miguel Bernilla Sánchez <mbernilla(at)sedapal(dot)com(dot)pe> wrote:
>
>
> ============
> Con fecha Lunes, 12 de Marzo de 2007, 10:20:06 a.m., escribió:
>
> > Hola todos,
>
> > necesito una ayuda para vislumbrar un error de sintaxis el cual no logro ver.
>
> > Esta es la funcion que estoy creando:
> > CREATE FUNCTION cargausu(
> > tb text,
> > c1 text,
> > c2 text,
> > c3 text,
> > c4 text,
> > c5 text,
> > c6 text,
> > c7 text,
> > c8 text,
> > c9 text,
> > c10 text,
> > c11 text,
> > c12 text,
> > c13 text,
> > c14 text,
> > c16 text,
> > c17 text,
> > c18 text,
> > c19 text,
> > c20 text
> > ) RETURNS text AS
> > $$
> > DECLARE
> > tabla ALIAS FOR $1;
> > edad ALIAS FOR $8;
> > duplicado RECORD;
>
>
> > BEGIN
> >
> > IF tabla == 'US' THEN
> > SELECT consecutivo,edad INTO duplicado FROM usuarios where
>
> Estas seleccionado "consecutivo,edad" (dos campos) y pretendes
> guardarlo en una sola variable "INTO duplicado"...
>
Hum! pero yo defino duplicados como RECORD no se supone que el toma el
registro completo y no solo un campo.
Debería cambiarlo a ROWTYPE? es que necesito los dos campos, que me sugieren?
Gracias
>
> > ( codentadm = $2 AND
> > tipid = $3 AND
> > numid = $4 AND
> > tipusu = $5 AND
> > tipafi = $6 AND
> > codocu = $7 AND
> > uniedad = $9 AND
> > sexo = $10 AND
> > coddep = $11 AND
> > codmun = $12 AND
> > zona = $13
> > );
> > IF found THEN
> > IF (edad-duplicado.edad =< 1 AND edad-duplicado.edad => 1) THEN
> > INSERT INTO
> > errores(codentadm,coddep,codmun,tiperr,criterio,fechaval,regnum,trimanio)
> > VALUES('$2','$11','$12','El Registro presenta
> > Duplicidad','D01',date(now()),duplicado.consecutivo,'$13');
> >
> > RETURN "Error";
> > END IF;
> > END IF;
> > END IF;
> > BEGIN
> > INSERT INTO usuarios
> > (codentadm,tipid,numid,tipusu,tipafi,codocu,edad,uniedad,sexo,coddep,codmun,zona,trimanio)
> > VALUES
> > ('$2','$3','$4','$5','$6','$7','$8','$9','$10','$11','$12','$13','$14');
> > RETURN "OK";
> > EXCEPTION WHEN unique_violation THEN
> > RETURN "Se totio";
> > -- do nothing
> > END;
>
> > END;
> > $$
> > LANGUAGE plpgsql;
>
> > y el error que me entrega es:
> > ERROR: error de sintaxis en o cerca de «$1»
> > Estado SQL:42601
> > Contexto:SQL statement in PL/PgSQL function "cargausu" near line 34
>
> > he remplazado, quitado, cambiado de todo y en todos lados pero no
> > logro encontrarlo.
>
> > Agradezco su ayuda.
>
> > JSLL
>
> > ---------------------------(fin del
> > mensaje)---------------------------
> > TIP 10: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Mario | 2007-03-12 16:49:38 | Re: Hola necesito una opinion fuerte sobre cual es mas rapido mssql o postgres |
Previous Message | Jaime Quiroga | 2007-03-12 16:31:52 | Hola necesito una opinion fuerte sobre cual es mas rapido mssql o postgres |