From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
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 19:25:44 |
Message-ID: | 20070312192544.GA7700@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Jairo Sánchez escribió:
> Bueno, no se por que pero el error es generado por la declaración de
> los dos parámetros $1 y $8
> por que se los quite y puse el nombre del parámetro dentro de la
> sentencias y funciono.
El problema es el siguiente. Primero que nada observa el mensaje de
error que obtengo yo. Lo que hice fue tomar tu funcion y ponerla en un
archivo /tmp/foo, luego agregar los CREATE TABLE necesarios para las
tablas que mencionas en la funcion. Luego ejecuto el archivo:
alvherre=# \i /tmp/foo
BEGIN
CREATE TABLE
CREATE TABLE
psql:/tmp/foo:75: ERROR: error de sintaxis en o cerca de «$1»
LINEA 1: ...rios (codentadm,tipid,numid,tipusu,tipafi,codocu, $1 ,unieda...
^
CONSULTA: INSERT INTO usuarios (codentadm,tipid,numid,tipusu,tipafi,codocu, $1 ,uniedad,sexo,coddep,codmun,zona,trimanio) VALUES ('$2','$3','$4','$5','$6','$7','$8','$9','$10','$11','$12','$13','$14')
CONTEXTO: SQL statement in PL/PgSQL function "cargausu" near line 36
ROLLBACK
Observa la linea "CONSULTA:" del mensaje de error, dice
"codocu, $1 ,unieda"
que ciertamente no es lo que esta en la funcion. Esta dice, en esa
parte:
codocu,edad,uniedad
Por lo tanto se puede inferir que el problema es que esta tomando ese
nombre de columna que le pasas al INSERT como si fuera la variable que
declaraste al principio.
La moraleja de esta historia: en PL/pgSQL, nunca declares variables que
se llamen igual que las columnas de tus tablas. Aca podrias cambiar
esta funcion poniendo "_edad ALIAS FOR $8" en el DECLARE, y no tendrias
el problema.
Eso es todo.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-03-12 19:34:23 | Re: TRUNCATE y tiempos |
Previous Message | Mario A Wojcik | 2007-03-12 19:20:21 | Re: Mono. Postgresql y VB OT |