본문 바로가기
  • 노란색 세상은 어디에 있을까?
  • 봄이 오면 여기에 있겠지.
  • 잠시나마 유유자적 하겠네.
오라클/테이블(시스템관리)

[ 로그 ] 테이블 생성을 아래와 같이 진행합니다.

by 태백성 2024. 4. 12.

-- ------------------------------------------------------------------------------------------------
-- [ 시스템관리 ] 로그 테이블 생성
conn system/built123$@ndb;
-- ------------------------------------------------------------------------------------------------
-- 테이블 생성
drop   table bsys.sys_log cascade constraints;
create table bsys.sys_log
(
     corp_id                 number         not null
    ,log_id                  number         not null
    ,log_name                varchar2(200)  not null
    ,param_package           varchar2(200)
    ,param_corp_id           number
    ,param_lang_cd           varchar2(50)
    ,param_user_cd           varchar2(50)
    ,param_transaction_type  varchar2(1)
    ,param_file_name         varchar2(200)
    ,param_info              varchar2(4000)
    ,result_status_cd        varchar2(50)
    ,result_descr            varchar2(4000)
    ,create_date             timestamp      default systimestamp
    ,create_by               varchar2(50)   default '-1'
    ,update_date             timestamp      default systimestamp
    ,update_by               varchar2(50)   default '-1'
);

-- 테이블 설명
comment on table  bsys.sys_log                         is '[시스템관리] 로그';
comment on column bsys.sys_log.corp_id                 is '법인ID';
comment on column bsys.sys_log.log_id                  is '로그ID';
comment on column bsys.sys_log.log_name                is '로그명';
comment on column bsys.sys_log.param_package           is '로그레벨1';
comment on column bsys.sys_log.param_corp_id           is '로그레벨2';
comment on column bsys.sys_log.param_lang_cd           is '로그레벨3';
comment on column bsys.sys_log.param_user_cd           is '로그레벨4';
comment on column bsys.sys_log.param_transaction_type  is '로그레벨5';
comment on column bsys.sys_log.param_file_name         is '파일명';
comment on column bsys.sys_log.param_info              is '매개변수';
comment on column bsys.sys_log.result_status_cd        is '처리결과코드';
comment on column bsys.sys_log.result_descr            is '처리결과';

comment on column bsys.sys_log.create_date             is '생성일시';
comment on column bsys.sys_log.create_by               is '생성자';
comment on column bsys.sys_log.update_date             is '수정일시';
comment on column bsys.sys_log.update_by               is '수정자';

-- primary 인덱스
alter table bsys.sys_log add constraint sys_log_pk primary key (log_id) using index tablespace bdb_idx;

-- normal 인덱스
create index bsys.sys_log_ix01 on bsys.sys_log (corp_id, log_name) tablespace bdb_idx;
create index bsys.sys_log_ix02 on bsys.sys_log (corp_id, param_file_name) tablespace bdb_idx;

-- 권한부여
grant select, insert, update, delete on bsys.sys_log to bcom with grant option;
grant select, insert, update, delete on bsys.sys_log to bhrm with grant option;

-- 트리거 생성
create or replace trigger bsys.sys_log_trg
    before insert or update on bsys.sys_log
    for each row
begin
    if :new.log_id is null then    
        :new.log_id  := sys_log_s.nextval;        
    end if;
    
    if inserting then
        :new.create_date := systimestamp;
        :new.create_by   := nvl(wwv_flow.g_user, user);
    end if;
    
    :new.update_date := systimestamp;
    :new.update_by   := nvl(wwv_flow.g_user, user);
end;
/

-- 시노님 생성
conn bcom/1234@ndb;
create or replace synonym sys_log for bsys.sys_log;

conn bhrm/1234@ndb;
create or replace synonym sys_log for bsys.sys_log;