1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
CREATE OR REPLACE PROCEDURE P_Trace (
vmachine IN VARCHAR2,
vsource IN VARCHAR2,
vversion IN VARCHAR2,
vmessage IN VARCHAR2
)
AS
file_handle UTL_FILE.FILE_TYPE;
BEGIN
--Ouverture du fichier de trace en mode 'Ajout'
DBMS_OUTPUT.put_line ('début');
file_handle := UTL_FILE.FOPEN('/home/oracle/admin/My_BDD/utl','trace.log','a');
DBMS_OUTPUT.put_line ('/home/oracle/admin/My_BDD/utl');
-- Ecriture de la ligne de trace
UTL_FILE.put_line(file_handle, TO_CHAR(SYSDATE,'YYYYMMDD-HH24:Mi:ss')||' 0 '||LPAD(vmachine,8,' ')||' '|| LPAD(vsource,32,' ')||' '||LPAD(vversion,8,' ')||' '||vmessage);
DBMS_OUTPUT.put_line ('UTL_FILE.put_line');
-- On vide le buffer dans le fichier de trace
UTL_FILE.FFLUSH(file_handle);
DBMS_OUTPUT.put_line ('UTL_FILE.FFLUSH');
-- Fermeture du fichier
UTL_FILE.FCLOSE(file_handle);
DBMS_OUTPUT.put_line ('UTL_FILE.FCLOSE');
EXCEPTION WHEN utl_file.invalid_mode THEN
RAISE_APPLICATION_ERROR (-20051, 'Invalid Mode Parameter');
WHEN utl_file.invalid_path THEN
RAISE_APPLICATION_ERROR (-20052, 'Invalid File Location');
WHEN utl_file.invalid_filehandle THEN
RAISE_APPLICATION_ERROR (-20053, 'Invalid Filehandle');
WHEN utl_file.invalid_operation THEN
RAISE_APPLICATION_ERROR (-20054, 'Invalid Operation');
WHEN utl_file.read_error THEN
RAISE_APPLICATION_ERROR (-20055, 'Read Error');
WHEN utl_file.internal_error THEN
RAISE_APPLICATION_ERROR (-20057, 'Internal Error');
WHEN utl_file.charsetmismatch THEN
RAISE_APPLICATION_ERROR (-20058, 'Opened With FOPEN_NCHAR But Later I/O Inconsistent');
WHEN utl_file.file_open THEN
RAISE_APPLICATION_ERROR (-20059, 'File Already Opened');
WHEN utl_file.invalid_maxlinesize THEN
RAISE_APPLICATION_ERROR(-20060,'Line Size Exceeds 32K');
WHEN utl_file.invalid_filename THEN
RAISE_APPLICATION_ERROR (-20061, 'Invalid File Name');
WHEN utl_file.access_denied THEN
RAISE_APPLICATION_ERROR (-20062, 'File Access Denied By');
WHEN utl_file.invalid_offset THEN
RAISE_APPLICATION_ERROR (-20063,'FSEEK Param Less Than 0');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR (-20099, 'Unknown UTL_FILE Error');
UTL_FILE.FCLOSE(file_handle);
END P_Trace;
/ |
Partager