Kurum Değiştiren Bilgisini Farklı Bir Tabloda Log ile Tutmak

Bazı kurumlarda protokol tablosunu sürekli log’lamak büyük veri artışları getirebilir.Bu gibi durumlarda protokol tablosunun en önemli gerekçesi olan sadece kurum değiştiren bilgisini log’laya bilirsiniz.Bunun için;

 

DROP TABLE HASTANE.PROTOKOL_DEGISEN_KURUM_LOG CASCADE CONSTRAINTS;

CREATE TABLE HASTANE.PROTOKOL_DEGISEN_KURUM_LOG
(
PROTOKOL_NO NUMBER,
KURUM_NO NUMBER,
YENI_KURUM_NO NUMBER,
KULLANICI_DEGISTIREN VARCHAR2(32 BYTE),
LOGTARIHI DATE
)
TABLESPACE USERS
RESULT_CACHE (MODE DEFAULT)
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;

CREATE INDEX HASTANE.PROT_KURUMLOG_INDEX ON HASTANE.PROTOKOL_DEGISEN_KURUM_LOG
(LOGTARIHI)
LOGGING
TABLESPACE USERS
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
FLASH_CACHE DEFAULT
CELL_FLASH_CACHE DEFAULT
)
NOPARALLEL;
CREATE OR REPLACE TRIGGER PROTOKOL_KURUM_NO
AFTER UPDATE OF KURUM_NO
ON PROTOKOL FOR EACH ROW
DECLARE

BEGIN
IF (:old.kurum_no <> :new.kurum_no)
THEN
INSERT INTO protokol_degisen_kurum_log (protokol_no,
kurum_no,
yeni_kurum_no,
kullanici_degistiren,
logtarihi)
VALUES (:OLD.protokol_no,
:old.kurum_no,
:NEW.kurum_no,
USER,
SYSDATE);
END IF;
END;

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir