Re: Problema con execute

Lists: pgsql-es-ayuda
From: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Problema con execute
Date: 2008-05-28 00:28:28
Message-ID: 735535.65316.qm@web52112.mail.re2.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

maestros, dentro de un funcion plpgsql, tengo que obtener un campo serial clave del registro que hizo un update, la unica forma de colocar los parametros de la funcion que conozco es meter todo dentro de un execute de este manera tengo

execute 'UPDATE analisis.personas SET tipodoc='||tipodoc||' , nombre='''||trim(nombre)||''' , sexo='''||trim(sexo)||''' , datos='''||trim(otros)||''', fechanac='''||fechanac||''' WHERE (documento='''|| trim(documento)||''' and (tipodoc=99 or tipodoc='||tipodoc||'));';

execute 'select analisis.personas.clave into claveper WHERE (documento='''|| trim(documento)||''' and tipodoc='||tipodoc||');';

pero me da el error:

ERROR: missing FROM-clause entry for table "personas"
LINEA 1: select analisis.personas.clave into claveper WHERE (document...
^
CONSULTA: select analisis.personas.clave into claveper WHERE (documento='2' and tipodoc=3);
CONTEXTO: PL/pgSQL function "cargaper2" line 15 at execute statement

el select esta bien si no lo hago con execute, pero sin el execute no se como meter los parametros, ¿como puedo hacerlo?

Tarjeta de crédito Yahoo! de Banco Supervielle.
Solicitá tu nueva Tarjeta de crédito. De tu PC directo a tu casa. www.tuprimeratarjeta.com.ar


From: "Julio Cesar Rodriguez Dominguez" <jurasec(at)gmail(dot)com>
To: "Gabriel Ferro" <gabrielrferro(at)yahoo(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema con execute
Date: 2008-05-28 03:01:07
Message-ID: 925902880805272001r446c8b6ax58782fa23f5a1756@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

2008/5/27 Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>:

> maestros, dentro de un funcion plpgsql, tengo que obtener un campo serial
> clave del registro que hizo un update, la unica forma de colocar los
> parametros de la funcion que conozco es meter todo dentro de un execute de
> este manera tengo
>
> execute 'UPDATE analisis.personas SET tipodoc='||tipodoc||' ,
> nombre='''||trim(nombre)||''' , sexo='''||trim(sexo)||''' ,
> datos='''||trim(otros)||''', fechanac='''||fechanac||''' WHERE
> (documento='''|| trim(documento)||''' and (tipodoc=99 or
> tipodoc='||tipodoc||'));';
>
> execute 'select analisis.personas.clave into claveper WHERE
> (documento='''|| trim(documento)||''' and tipodoc='||tipodoc||');';
>
> pero me da el error:
>
> ERROR: missing FROM-clause entry for table "personas"
> LINEA 1: select analisis.personas.clave into claveper WHERE (document...
> ^
>

El error esta claro, donde esta la clausula FROM?
y otra cosa, select into no esta soportado dentro de execute

>
> CONSULTA: select analisis.personas.clave into claveper WHERE
> (documento='2' and tipodoc=3);
> CONTEXTO: PL/pgSQL function "cargaper2" line 15 at execute statement
>
> el select esta bien si no lo hago con execute, pero sin el execute no se
> como meter los parametros, ¿como puedo hacerlo?
>
>
> ------------------------------
>
> Tarjeta de crédito Yahoo! de Banco Supervielle. Solicitá tu nueva Tarjeta
> de crédito. De tu PC directo a tu casa.
> Visitá www.tuprimeratarjeta.com.ar
>

--
:: God bless you, every day and every night ::


From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "Julio Cesar Rodriguez Dominguez" <jurasec(at)gmail(dot)com>
Cc: "Gabriel Ferro" <gabrielrferro(at)yahoo(dot)com(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema con execute
Date: 2008-05-28 05:28:37
Message-ID: c2d9e70e0805272228h36d71e0bp6d6f7bfa62a996e@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Tue, May 27, 2008 at 10:01 PM, Julio Cesar Rodriguez Dominguez
<jurasec(at)gmail(dot)com> wrote:
>
>> ERROR: missing FROM-clause entry for table "personas"
>> LINEA 1: select analisis.personas.clave into claveper WHERE (document...
>> ^
>
> El error esta claro, donde esta la clausula FROM?
> y otra cosa, select into no esta soportado dentro de execute
>

puedes usar:

EXECUTE 'select ...' INTO variable

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 087171157


From: "Julio Cesar Rodriguez Dominguez" <jurasec(at)gmail(dot)com>
To: "Jaime Casanova" <systemguards(at)gmail(dot)com>
Cc: "Gabriel Ferro" <gabrielrferro(at)yahoo(dot)com(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Problema con execute
Date: 2008-05-28 14:02:20
Message-ID: 925902880805280702p6edf201dtc9fede14b6b0d475@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Wed, May 28, 2008 at 12:28 AM, Jaime Casanova <systemguards(at)gmail(dot)com>
wrote:

> On Tue, May 27, 2008 at 10:01 PM, Julio Cesar Rodriguez Dominguez
> <jurasec(at)gmail(dot)com> wrote:
> >
> >> ERROR: missing FROM-clause entry for table "personas"
> >> LINEA 1: select analisis.personas.clave into claveper WHERE (document...
> >> ^
> >
> > El error esta claro, donde esta la clausula FROM?
> > y otra cosa, select into no esta soportado dentro de execute
> >
>
> puedes usar:
>
> EXECUTE 'select ...' INTO variable
>
> Gracias Jaime, por la aclaración.

>
> --
> Atentamente,
> Jaime Casanova
> Soporte y capacitación de PostgreSQL
> Guayaquil - Ecuador
> Cel. (593) 087171157
>

--
:: God bless you, every day and every night ::