es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tenemos g_errbuf := SQLERRM en los bloques de excepción. ¿Qué se asigna a la variable g_errbuf aquí?

EXCEPCIÓN
CUANDO OTROS ENTONCES
g_errbuf := SQLERRM;
g_retcode := 2;
write_log(‘Y’,
to_char(SYSDATE, ‘HH24:MI:SS’) || ‘ – ‘ ||
‘Ocurrió un error de datos con el ID de lote = ‘ || p_batch_id ||
‘ y el ulid de factura = ‘ || l_process_data_rec_type.invoice_ulid);
write_log(‘Y’,
to_char(SYSDATE, ‘HH24:MI:SS’) || ‘ – ‘ || ‘Error ‘ ||
l_procedure_name || ‘ : ‘ || g_errbuf);
SI c_get_ap%ISOPEN
ENTONCES
CLOSE c_get_ap;
FIN SI;

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Este fragmento de código muestra un controlador de excepciones en PL/SQL.

    La palabra clave EXCEPTION se utiliza para definir el bloque de código que se ejecutará en caso de que ocurra una excepción (error) en el bloque de código anterior. En este caso, captura todos los tipos de excepciones (WHEN OTHERS THEN).

    Dentro del bloque de excepción, se utiliza la función SQLERRM para obtener el mensaje de error asociado con la excepción que fue capturada. Este mensaje se asigna a la variable g_errbuf.

    A continuación, se establece la variable g_retcode en 2, lo que indica que se ha producido un error.

    Se escriben dos entradas de registro utilizando el procedimiento write_log. Estas entradas de registro contienen marcas de tiempo, el ID de lote, el ID de factura y el mensaje de error.

    Finalmente, el cursor c_get_ap se cierra si estaba abierto.

    En general, este controlador de excepciones está diseñado para manejar errores genéricos que pueden ocurrir durante el procesamiento de datos. Captura el mensaje de error, lo registra y luego limpia cualquier recurso abierto.

Comments are closed.