From: | Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com> |
---|---|
To: | Diego Ayala <netdiego81(at)gmail(dot)com>, Agustin Ignacio Genoves <agustingenoves(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Error al ejecutar una funcion con commit |
Date: | 2007-07-02 22:35:35 |
Message-ID: | 820522.13319.qm@web63703.mail.re1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
--- Diego Ayala <netdiego81(at)gmail(dot)com> escribió:
> Si, creo que estas en lo cierto Agustín, recién
> estuve viendo algo de la
> documentación y apesar de no entender muy bien el
> ingles, pude ver que no se
> puede usar commit dentro de una función
>
> Gracias
>
> El día 2/07/07, Agustin Ignacio Genoves
> <agustingenoves(at)gmail(dot)com> escribió:
> >
> > Diego, creo que no podes poner commit dentro de
> una funcion. Creo que
> > la forma seria salvar a un punto (save point o
> algo asi), no estoy
> > seguro, pero lo que si creo es que commit dentro
> de una funcion no se
> > puede usar.
> > Agustin
> >
> > PD: Corregirme si no es así.
> >
> > El 2/07/07, Diego Ayala <netdiego81(at)gmail(dot)com>
> escribió:
> > >
> > > Buenos dias listeros, tengo un problema al
> ejecutar una función, dentro
> > de
> > > la función puse COMMIT, ya que dentro de mi
> código hago UPDATE a varios
> > > registros, a traves de un LOOP, y al ser muchos
> registros, necesito que
> > me
> > > vaya almacenando de a 500 registros x lo menos,
> para no esperar a que
> > > termine de ejecutar toda la función para que me
> comitee al final..
> > > me da el siguiente error:
> > >
> > >
> > > ERROR: SPI_execute_plan failed executing query
> "COMMIT":
> > > SPI_ERROR_TRANSACTION
> > > SQL state: XX000
> > > Context: PL/pgSQL function
> "actualiza_tabla_adjp_tmp" line 50 at SQL
> > > statement
> > >
> > > Alguien sabe a que se debe este error, uso la
> versión 8.2.3 de
> > PostgreSQL,
> > >
> > > Aqui esta parte del codigo de mi función
> > >
> > >
> > >
> > > LOOP
> > >
> > >
> > > UPDATE p_adj_usu
> > > SET prv_rucn=x.prv_ruccod
> > > WHERE padj_secuencia=i;
> > >
> > > IF(MOD(contador,500)=0) THEN
> > >
> > > COMMIT;
> > >
> > > END IF;
> > >
> > >
> > > END LOOP;
> > >
> > >
> > >
> > > Muchas Gracias
> > > --
> > > Diego Ayala
> >
>
>
>
> --
> Diego Ayala
>
Efectivamente, puesto que en si la funcion se ejecuta
dentro de una transaccion, no solo no se puede hacer
commit, si no que lo principal es que esto es
automatico, o sea en castellano quiere decir que si
todo va bien la funcion se ejecuta en su totalidad y
si no no se ejecuta nada.
Atte.
Gabriel Hermes Colina Zambra
__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel Rodríguez Penabad | 2007-07-03 00:05:38 | Fwd: Error al ejecutar una funcion con commit |
Previous Message | Diego Ayala | 2007-07-02 16:36:38 | Re: Error al ejecutar una funcion con commit |