create or replace package bsys.sys_log_api
is
-- 고정변수 정의
c_package_name constant varchar2(0200) default 'sys_log_api';
-- 전역변수 정의
g_log_write_yn varchar2(0020) default 'Y'; -- Y: 로그저장, N: 로그스킵
-- 전역변수 정의
type t_log is record
(corp_id number default null -- 법인id
,log_name varchar2(200) default null -- 로그명
,param_package varchar2(200) default null -- 패키지
,param_corp_id number default null -- 법인id
,param_lang_cd varchar2(50) default null -- 언어코드
,param_user_cd varchar2(50) default null -- 사용자코드
,param_transaction_type varchar2(1) default null -- 처리유형
,param_file_name varchar2(200) default null -- 파일명
,param_info varchar2(4000) default null -- 매개변수
,result_status_cd varchar2(0001) default null -- 처리상태코드('S': 성공, 'F': 실폐)
,result_descr varchar2(4000) default null -- 처리결과
);
g_log t_log;
-- 함수 정의
procedure log_p
(po_result_cd in out number -- 결과코드(0: 정상, -1: 오류)
,po_result_descr in out varchar2 -- 결과내용
);
procedure log_p
(po_result_cd in out number -- 결과코드(0: 정상, -1: 오류)
,po_result_descr in out varchar2 -- 결과내용
--
,pi_corp_id in varchar2 -- 법인id
,pi_log_name in varchar2 -- 로그명
,pi_param_package in varchar2 -- 패키지
,pi_param_corp_id in varchar2 -- 법인id
,pi_param_lang_cd in varchar2 -- 언어코드
,pi_param_user_cd in varchar2 -- 사용자코드
,pi_param_transaction_type in varchar2 -- 처리유형
,pi_param_file_name in varchar2 -- 파일명
,pi_param_info in varchar2 -- 매개변수
,pi_result_status_cd in varchar2 -- 처리상태코드('S': 성공, 'F': 실폐)
,pi_result_descr in varchar2 -- 처리결과
);
end sys_log_api;
create or replace package body bsys.sys_log_api
/* ********************************************************************************************
* 업 무 단 위 : 시스템관리
* 패 키 지 : bsys.sys_log_api
* 사 용 목 적 : 로그생성 및 관리를 위한 패키지
* 생 성 일 자 : 2024-02-01
* 생 성 자 : Admin
--------------------------------------------------------------------------------------------
* 수정일자 수정자 수정내역
--------------------------------------------------------------------------------------------
* 2024-02-01 Admin 최초 작성
******************************************************************************************** */
is
/* ********************************************************************************************
* 사 용 목 적 : 로그 데이터 저장
* 생 성 일 자 : 2024-02-01
* 생 성 자 : Admin
******************************************************************************************** */
procedure log_p
(po_result_cd in out number -- 결과코드(0: 정상, -1: 오류)
,po_result_descr in out varchar2 -- 결과내용
)
is
begin
-- 처리상태가 성공할 경우 공통메시지 저장
select decode(g_log.result_status_cd, 'S', sys_init_api.c_success_descr, g_log.result_descr)
into g_log.result_descr
from dual;
-- 로그 데이터 저장
log_p
(po_result_cd => po_result_cd
,po_result_descr => po_result_descr
--
,pi_corp_id => g_log.corp_id
,pi_log_name => g_log.log_name
,pi_param_package => g_log.param_package
,pi_param_corp_id => g_log.param_corp_id
,pi_param_lang_cd => g_log.param_lang_cd
,pi_param_user_cd => g_log.param_user_cd
,pi_param_transaction_type => g_log.param_transaction_type
,pi_param_file_name => g_log.param_file_name
,pi_param_info => g_log.param_info
,pi_result_status_cd => g_log.result_status_cd
,pi_result_descr => g_log.result_descr
);
end log_p;
/* ********************************************************************************************
* 사 용 목 적 : 로그 데이터 저장
* 생 성 일 자 : 2024-02-01
* 생 성 자 : Admin
******************************************************************************************** */
procedure log_p
(po_result_cd in out number -- 결과코드(0: 정상, -1: 오류)
,po_result_descr in out varchar2 -- 결과내용
--
,pi_corp_id in varchar2 -- 법인id
,pi_log_name in varchar2 -- 로그명
,pi_param_package in varchar2 -- 패키지
,pi_param_corp_id in varchar2 -- 법인id
,pi_param_lang_cd in varchar2 -- 언어코드
,pi_param_user_cd in varchar2 -- 사용자코드
,pi_param_transaction_type in varchar2 -- 처리유형
,pi_param_file_name in varchar2 -- 파일명
,pi_param_info in varchar2 -- 매개변수
,pi_result_status_cd in varchar2 -- 처리상태코드('S': 성공, 'F': 실폐)
,pi_result_descr in varchar2 -- 처리결과
)
is
pragma autonomous_transaction;
begin
-- 기본값 할당
po_result_cd := 0;
po_result_descr := sys_init_api.c_success_descr;
if g_log_write_yn = 'Y' then
begin
-- 로그 데이터 저장
insert into sys_log
(corp_id
,log_id
,log_name
,param_package
,param_corp_id
,param_lang_cd
,param_user_cd
,param_transaction_type
,param_file_name
,param_info
,result_status_cd
,result_descr
,create_date
,create_by
,update_date
,update_by
)
values
(nvl(pi_corp_id, -1)
,sys_log_s.nextval
,pi_log_name
,pi_param_package
,pi_param_corp_id
,pi_param_lang_cd
,pi_param_user_cd
,pi_param_transaction_type
,pi_param_file_name
,pi_param_info
,pi_result_status_cd
,pi_result_descr
,systimestamp
,pi_param_user_cd
,systimestamp
,pi_param_user_cd
);
-- 배치 로그 저장
commit;
exception
when others then
po_result_cd := -1;
po_result_descr := '[로그저장] ' || substr(sqlerrm, 11);
dbms_output.put_line('po_result_descr → ' || po_result_descr);
end;
end if;
end log_p;
end sys_log_api;
'오라클 > 패키지(시스템공통)' 카테고리의 다른 글
[ 권한 및 시노님 ] 시스템공통으로 사용할 패키지에 대한 권한 및 시노님을 부여합니다. (0) | 2024.04.12 |
---|---|
[ APEX 시스템 오류 제어 ] sys_error_api 패키지를 생성합니다. (0) | 2024.04.12 |
[ 환경설정 ] sys_env_api 패키지를 생성합니다. (0) | 2024.04.12 |
[ 업무코드 및 명칭조회 ] sys_get_api 패키지를 생성합니다. (0) | 2024.04.12 |
[ 세션정보 ] sys_env_f 함수를 생성합니다. (0) | 2024.04.12 |