Hallo Allerseits
Ich wurde beauftragt mittels PL/SQL Tabellen zu loggen. Also sobald ein Insert, Update, Delete auf einer Tabelle X gemacht wird, wird ein Eintrag in X_LOG gemacht.
Auf meiner Haupttabelle habe ich nun Foreign Keys erfasst. In der Log-Tabelle möchte ich nun in einem Attribut den FK loggen und in einem Zweiten aber auch der aufgelöste Wert aus der Referenz-Tabelle.
CREATE TABLE PL_CLASS (
PLCL_ID NUMBER (11),
PLCL_CODE VARCHAR2 (15),
PLCL_DESC VARCHAR2 (100),
PLCL_SORT VARCHAR2 (12),
PLCL_CCYFK NUMBER (11),
CREATEDATE DATE,
CREATEUSER VARCHAR2 (15),
UPDATEDATE DATE,
UPDATEUSER VARCHAR2 (15),
CHANGESEQ NUMBER (11)
Das Attribut PLCL_CCYFK hat einen Foreign Key auf das Attribut ASCR_ID in der Tabelle AS_CCY.
CREATE TABLE AS_CCY (
ASCR_ID NUMBER (11),
ASCR_CODE VARCHAR2 (15),
ASCR_DESC VARCHAR2 (100),
..
..usw.
Ich habe nun einen Trigger auf PL_CLASS. Bei jeder Modifikation in PL_CLASS wird ein Eintrag in PL_CLASS_LOG gemacht.
CREATE TABLE PL_CLASS_LOG (
PLCL_ID NUMBER (11),
PLCL_CODE VARCHAR2 (15),
PLCL_DESC VARCHAR2 (100),
PLCL_SORT VARCHAR2 (12),
PLCL_CCYFK NUMBER (11),
PLCL_CCY VARCHAR (15),
CREATEDATE DATE,
CREATEUSER VARCHAR2 (15),
UPDATEDATE DATE,
UPDATEUSER VARCHAR2 (15),
CHANGESEQ NUMBER (11)
Ich möchte nun im Attribut PLCL_CCY nicht die ID von AS_CCY (die habe ich schon in PLCL_CCYFK), sondern den CODE aus AS_CCY (natürlich jener zu der entsprechenden ID).
Ist es irgendwie möglich, innerhalb des Triggers diese Auflösung vorzunehmen, oder was kann man da machen? Mein Trigger sieht mal so aus:
CREATE OR REPLACE TRIGGER PL_CLASS_LOGGING
AFTER INSERT
ON PL_CLASS
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO PL_CLASS_LOG(
PLCL_ID,
PLCL_CODE,
PLCL_DESC,
PLCL_SORT,
PLCL_CCYFK,
PLCL_CCY,
CREATEDATE,
CREATEUSER,
UPDATEUSER,
CHANGESEQ,
VALUES(
:NEW.PLCL_ID,
:NEW.PLCL_CODE,
:NEW.PLCL_DESC,
:NEW.PLCL_SORT,
:NEW.PLCL_CCYFK,
????,
:NEW.CREATEDATE,
:NEW.CREATEUSER,
:NEW.UPDATEUSER,
:NEW.CHANGESEQ);
END IF;
END PL_CLASS_LOGGING;
Vielen Dank für eure Hilfe…
mfg
Ich wurde beauftragt mittels PL/SQL Tabellen zu loggen. Also sobald ein Insert, Update, Delete auf einer Tabelle X gemacht wird, wird ein Eintrag in X_LOG gemacht.
Auf meiner Haupttabelle habe ich nun Foreign Keys erfasst. In der Log-Tabelle möchte ich nun in einem Attribut den FK loggen und in einem Zweiten aber auch der aufgelöste Wert aus der Referenz-Tabelle.
CREATE TABLE PL_CLASS (
PLCL_ID NUMBER (11),
PLCL_CODE VARCHAR2 (15),
PLCL_DESC VARCHAR2 (100),
PLCL_SORT VARCHAR2 (12),
PLCL_CCYFK NUMBER (11),
CREATEDATE DATE,
CREATEUSER VARCHAR2 (15),
UPDATEDATE DATE,
UPDATEUSER VARCHAR2 (15),
CHANGESEQ NUMBER (11)
Das Attribut PLCL_CCYFK hat einen Foreign Key auf das Attribut ASCR_ID in der Tabelle AS_CCY.
CREATE TABLE AS_CCY (
ASCR_ID NUMBER (11),
ASCR_CODE VARCHAR2 (15),
ASCR_DESC VARCHAR2 (100),
..
..usw.
Ich habe nun einen Trigger auf PL_CLASS. Bei jeder Modifikation in PL_CLASS wird ein Eintrag in PL_CLASS_LOG gemacht.
CREATE TABLE PL_CLASS_LOG (
PLCL_ID NUMBER (11),
PLCL_CODE VARCHAR2 (15),
PLCL_DESC VARCHAR2 (100),
PLCL_SORT VARCHAR2 (12),
PLCL_CCYFK NUMBER (11),
PLCL_CCY VARCHAR (15),
CREATEDATE DATE,
CREATEUSER VARCHAR2 (15),
UPDATEDATE DATE,
UPDATEUSER VARCHAR2 (15),
CHANGESEQ NUMBER (11)
Ich möchte nun im Attribut PLCL_CCY nicht die ID von AS_CCY (die habe ich schon in PLCL_CCYFK), sondern den CODE aus AS_CCY (natürlich jener zu der entsprechenden ID).
Ist es irgendwie möglich, innerhalb des Triggers diese Auflösung vorzunehmen, oder was kann man da machen? Mein Trigger sieht mal so aus:
CREATE OR REPLACE TRIGGER PL_CLASS_LOGGING
AFTER INSERT
ON PL_CLASS
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO PL_CLASS_LOG(
PLCL_ID,
PLCL_CODE,
PLCL_DESC,
PLCL_SORT,
PLCL_CCYFK,
PLCL_CCY,
CREATEDATE,
CREATEUSER,
UPDATEUSER,
CHANGESEQ,
VALUES(
:NEW.PLCL_ID,
:NEW.PLCL_CODE,
:NEW.PLCL_DESC,
:NEW.PLCL_SORT,
:NEW.PLCL_CCYFK,
????,
:NEW.CREATEDATE,
:NEW.CREATEUSER,
:NEW.UPDATEUSER,
:NEW.CHANGESEQ);
END IF;
END PL_CLASS_LOGGING;
Vielen Dank für eure Hilfe…
mfg
Comment