Re: Error al ejecutar una funcion con commit

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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