# Uso del Commit y Rollback en postgres

[Inicio](https://www.todoexpertos.com/) › [PostgreSQL](https://www.todoexpertos.com/temas/postgresql)

- Fecha de publicación: 2017-01-17
- Enlace canónico (HTML): https://www.todoexpertos.com/preguntas/7jpetgt4dr8a9ilk/uso-del-commit-y-rollback-en-postgres

## Pregunta

*Por Luis Enrique Alvarez* · 2017-01-17

Tengo un proceso en la base de datos de Postgres el cual realiza unas consultas e insert, pero al ejecutae el commit el proceso fallaBEGINDECLARE  V_VALOR INT;  v_id INT DEFAULT 0; v_fk_vigencia INT; v_fk_id_tercero VARCHAR(30); v_nombre_completo VARCHAR(30);v_id_error INT; v_impuesto_liquidado INT; v_max_id INT; v_caracter VARCHAR(1); CODE INT; MSG VARCHAR(200); v_procesado INT; DIAN CURSOR FOR SELECT id,fk_vigencia,fk_id_tercero,nombre_completo,direccion,telefono,codigo_ciiu,ingresos_brutos  FROM siatfisc_tem_dian WHERE estado = 'A'; BEGIN BEGIN SELECT COALESCE(count(*),0) INTO v_total_registros FROM siatfisc_tem_dian WHERE estado = 'N'; EXCEPTION WHEN OTHERS THEN v_error = 'Se presentaron inconvenientes al Momento de Totalizar el Archivo de la Dian'; END; BEGIN INSERT INTO global_tm_terceros(pk_id_tercero,dig_verificacion,fk_id_tipo_contribuyente,fk_id_naturaleza,fk_id_tipo_documento,fk_id_actividad_economica,fk_id_pais_dpto_mun,nombre_completo,direccion,telefono,user_at) values (a.fk_i_tercero,0,1,1,'CC',a.codigo_ciiu,a.nombre_completo,a.direccion,a.telefono,'luchito'); EXCEPTION WHEN OTHERS THEN CODE:=SQLCODE; MSG:= SQLERRM; ROLLBACK; v_procesado=1; INSERT INTO siatfisc_tem_log (Proceso,fecha,codigo_error,error) values('Cargue Datos global_tm_terceros',now(),CODE,MSG); COMMIT; v_error = 'Se presentaron errores en el proceso de creacion del tercero '||CODE||' Mensaje = '||MSG; END; IF v_procesado=1 THEN ROLLBACK; INSERT INTO siatfisc_tem_log (Proceso,fecha,codigo_error,error) values('Actualizacion estado DIAN',now(),CODE,MSG); COMMIT; v_error = 'Se presentaron errores en La ejecucion del Proceso, por lo anterior se reversa toda la transaccion'||CODE||' Mensaje = '||MSG;  ELSE  COMMIT;  v_error = 'El proceso de cargue de Archivo de la DIAN, se ha realizo satisfactoriamente, ahor ase debe realzar el Cargue del Archivo de Industria y Comercio';  END IF;  return v_error; END;Generando el siguiente errorError de SQL:ERROR:  cannot begin/end transactions in PL/pgSQL
HINT:  Use a BEGIN block with an EXCEPTION clause instead.
CONTEXT:  PL/pgSQL function siatfisc_pro_cargadatos_dian() line 132 at SQL statement

## Respuestas (0)

_Esta pregunta aún no tiene respuestas._

---
*Fuente: [https://www.todoexpertos.com/preguntas/7jpetgt4dr8a9ilk/uso-del-commit-y-rollback-en-postgres](https://www.todoexpertos.com/preguntas/7jpetgt4dr8a9ilk/uso-del-commit-y-rollback-en-postgres) — consultado el 2026-10-22. Al citar, enlaza la URL canónica e indica la fecha de consulta.*
