Skip site navigation (1) Skip section navigation (2)

Re: Mas de 32 Parametros : FE DE ERRATAS linea de comando muy larga dentro de function

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Pepe Ballaga <pepe(at)transnet(dot)cu>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Mas de 32 Parametros : FE DE ERRATAS linea de comando muy larga dentro de function
Date: 2005-08-30 14:33:02
Message-ID: 20050830143302.GF16133@surnet.cl (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
On Tue, Aug 30, 2005 at 10:00:41AM -0400, Pepe Ballaga wrote:
> este es el mensaje de error que me da
> 
> ERROR:  syntax error at or near "$1" at character 28
> QUERY:  INSERT INTO trabajadores ( $1 ,  $2 ,  $3 ,  $4 ,  $5 ,  $6 ,  $7 , 
> $8 ,  $9 ,  $10 ,  $11 ,  $12 ,  $13 ,  $14 , fk_escolaridad, 
> ubicacion_defensa,  $15 ,  $16 , fk_cargo,  $17 , fk_tipocontra

El problema es que estas definiendo variables que se llaman igual que
las columnas de la tabla, cosa que no funciona correctamente.  Esto se
nota porque esta reemplazando los nombres de las columnas en la lista de
columnas del insert, ademas de en la lista de valores.  O sea

insert into tabla (una, otra) values (una, otra)

queda en

insert into tabla ($1, $2) values ($1, $2)


Cambia los nombres de las variables, por ej.

> CREATE OR REPLACE FUNCTION addprueba(_varchar) RETURNS void AS
> $BODY$
> DECLARE
> var1 ALIAS FOR $1;
> _numero varchar:= var1[1];
> _ci varchar:= var1[2];
> _nombre text:= var1[3];
> _apellido1 text:= var1[4];
> _apellido2 text:= var1[5];

Etc.

-- 
Alvaro Herrera <alvherre[]alvh.no-ip.org>      Architect, www.EnterpriseDB.com
"Acepta los honores y aplausos y perderás tu libertad"

In response to

Responses

pgsql-es-ayuda by date

Next:From: Loan Joa MatosDate: 2005-08-30 15:23:15
Subject: ┬┐Necesito saber sobre los log de?==?utf-8?Q? postgres?
Previous:From: Pepe BallagaDate: 2005-08-30 14:00:41
Subject: Re: Mas de 32 Parametros : FE DE ERRATAS linea de comando muy larga dentro de function

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group