Oracle Live

23/08/2016

PLSQL – Funciones traceo

Filed under: PLSQL — mogukiller @ 3:36 pm
Tags: ,

La mayoría de nosotros utiliza DBMS_OUTPUT para generar trazas de nuestro bloques de PLSQL, pero estas trazas solo las obtenemos una vez terminado el bloque. Para evitar esto recomiendo utilizar el paquete UTL_FILE.

Antiguamente UTL_FILE utilizaba el parametro UTL_FILE_DIR para configurar el path de los ficheros. Oracle recomienda que se utilicen objetos directorios.


-- Creamos el directorio
CREATE DIRECTORY TRAZAS AS '/export/home/oracle/lmds';

DECLARE

flog UTL_FILE.FILE_TYPE; 
trace_level	PLS_INTEGER	:= 1;
log_path	VARCHAR2(50) := 'TRAZAS';
log_name	VARCHAR2(50) := 'Mogu_Prueba1_'||TO_CHAR(SYSDATE,'YYYYMMDD_HH24MI')||'.log';
resultado	BOOLEAN := FALSE;
str_message	VARCHAR2(250);

-- Abre el log
FUNCTION START_LOG (lpath in VARCHAR2,lname in VARCHAR2) 
RETURN BOOLEAN	IS
BEGIN
	flog := UTL_FILE.FOPEN(lpath,lname,'w');	
	RETURN TRUE;
EXCEPTION 
	WHEN OTHERS THEN
		DBMS_OUTPUT.put_line('ERROR: Fallo al abrir el fichero');
		RETURN FALSE;
END START_LOG;

-- Escribe en el log
PROCEDURE TO_LOG (v_message	in VARCHAR2, t_level in PLS_INTEGER)
IS
	str_message 	VARCHAR2(250);
BEGIN
	IF t_level <= trace_level THEN
		str_message := '['||TO_CHAR(SYSDATE,'HH24:MI:SS')||'] '||v_message;
		UTL_FILE.PUT_LINE(flog,str_message,TRUE);
	END IF;
END TO_LOG;

-- Cierra el log
FUNCTION END_LOG RETURN BOOLEAN
IS
BEGIN
	UTL_FILE.FCLOSE(flog);
	RETURN TRUE;
EXCEPTION 
	WHEN OTHERS THEN
		DBMS_OUTPUT.put_line('ERROR: Fallo al cerrar el fichero');
		RETURN FALSE;
END END_LOG;
	
BEGIN
resultado := START_LOG(log_path, log_name);
str_message := 'Comenzamos la ejecucion';
TO_LOG (str_message,1);
str_message := 'INFO Trazas Debug';
TO_LOG (str_message,2);
str_message := 'Fin de la ejecucion';
TO_LOG (str_message,1);
resultado := END_LOG();
END;
/

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

A %d blogueros les gusta esto: