From: | "Agustin Ignacio Genoves" <agustingenoves(at)gmail(dot)com> |
---|---|
To: | "Diego Ayala" <netdiego81(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 16:30:52 |
Message-ID: | d50beba10707020930y13937b3cl519f3fb84c98d031@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Diego Ayala | 2007-07-02 16:36:38 | Re: Error al ejecutar una funcion con commit |
Previous Message | Diego Ayala | 2007-07-02 14:54:05 | Error al ejecutar una funcion con commit |