|
-
Here is a simple procedure that uses UTL_FILE for writing error messages in a log file.
declare
p_v_Exchange VARCHAR2(20) := 'STR26CCT';
c_v_PackageName CONSTANT glob0.v_v_PackNam%TYPE DEFAULT 'Pck_Rou_Transl_S12';
c_v_ProgramName varchar2(30):= 'LoadRouting';
v_v_ErrorLocation VARCHAR2(254) := '-'; -- To locate the occured error
v_v_FileErrName VARCHAR2(50) := c_v_PackageName||'.'||c_v_ProgramName||'.err';
v_v_FileRouteErrName VARCHAR2(50) := c_v_PackageName||'.'||c_v_ProgramName||'.DupRoute';
v_v_FileRouteCombErrName VARCHAR2(50) := c_v_PackageName||'.'||c_v_ProgramName||'.DupRouteComb';
v_v_FileLocation VARCHAR2(50) := '/isnf/isn/var/matrix';
v_fh_Err UTL_FILE.FILE_TYPE; -- Handle on the error file
v_fh_DupRoute UTL_FILE.FILE_TYPE; -- Handle on the error file
v_fh_DupRouteComb UTL_FILE.FILE_TYPE; -- Handle on the error file
BEGIN
-------------------------------------
-- Using the RBIG rollback segment --
-------------------------------------
v_v_ErrorLocation := 'use the RBIG rollback segment at the start';
COMMIT;
DBMS_TRANSACTION.USE_ROLLBACK_SEGMENT('RBIG');
--------------------------------
-- Opening of the error files --
--------------------------------
v_v_ErrorLocation := 'opening of the error file';
v_fh_Err := UTL_FILE.FOPEN (v_v_FileLocation, v_v_FileErrName, 'W');
v_v_ErrorLocation := 'opening of the error file for the duplicate record into Route table';
v_fh_DupRoute := UTL_FILE.FOPEN (v_v_FileLocation, v_v_FileRouteErrName, 'W');
v_v_ErrorLocation := 'opening of the error file for the duplicate record into Route Combination table';
v_fh_DupRouteComb := UTL_FILE.FOPEN (v_v_FileLocation, v_v_FileRouteCombErrName, 'W');
---------------------------------------------------------
-- Call the procedure to correct the r_rtblk_s12 table --
---------------------------------------------------------
v_v_ErrorLocation := 'perform the CorrectTRtblkS12Table procedure';
Pck_Rou_Transl_S12.CorrectTRtblkS12Table
(
v_fh_Err
);
------------------------------------------------------
-- Call the first procedure to load the route table --
------------------------------------------------------
v_v_ErrorLocation := 'perform the LoadRouteTable procedure for: '||p_v_Exchange;
Pck_Rou_Transl_S12.LoadRoute(
p_v_Exchange,
v_fh_Err,
v_fh_DupRoute,
v_fh_DupRouteComb
);
v_v_ErrorLocation := 'write the buffer of the files';
UTL_FILE.FFLUSH (v_fh_DupRoute);
v_v_ErrorLocation := 'closing of the error file for the duplicate record into Route Combination table';
UTL_FILE.FCLOSE (v_fh_DupRouteComb);
v_v_ErrorLocation := 'closing of the error file for the duplicate record into Route table';
UTL_FILE.FCLOSE (v_fh_DupRoute);
v_v_ErrorLocation := 'closing of the error file';
UTL_FILE.FCLOSE (v_fh_Err);
-------------------------------
-- Perform a last committing --
-------------------------------
v_v_ErrorLocation := 'perform a final committing';
COMMIT;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLERRM);
UTL_FILE.PUT_LINE (v_fh_Err,'Error when <'||v_v_ErrorLocation||'> in '||c_v_ProgramName);
UTL_FILE.PUT_LINE (v_fh_Err,'Oracle error: '||SQLCODE||' - '||SQLERRM);
UTL_FILE.FFLUSH (v_fh_Err);
END;
/
Sabitabrata
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|