Re: Error 42601 al crear una funcion

From: Miguel Bernilla Sánchez <mbernilla(at)sedapal(dot)com(dot)pe>
To: Jairo Sánchez <jairosll(at)gmail(dot)com>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Error 42601 al crear una funcion
Date: 2007-03-12 16:09:45
Message-ID: 314581746.20070312110945@sedapal.com.pe
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

============
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"...

> ( 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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-03-12 16:11:57 Re: Version de postgres?
Previous Message Leonel 2007-03-12 16:09:04 Re: Mono. Postgresql y VB