We hebben een probleem in een applicatie met het inserten van records in de tabel. De applicatie probeert een datum te inserten in format ddmmyyyy terwijl de db dd-mm-yyyy verwacht (met streepjes). De applicatie dient nog een half jaar te lopen voordat er een andere geimplementeerd gaat worden. De leverancier van de huidige applicatie bestaat helaas niet meer.
Aangezien het enige probleem het insert statement is en de datum (heel lelijk) in een varchar veld wordt gedumpt dacht ik het op de volgende manier op te kunnen lossen.
Ik heb met het select statement getest en het lijkt te werken. Wellicht dat ik iets verkeerd doe met de :new zaken. Ik ben niet zo heel erg bekend met triggers. Ik heb me al lam gezocht op het internet, maar gok erop dat ik verkeerde keywords gebruik. Vind iig niet goed wat ik zoek.
Wellicht dat een van jullie me verder kan helpen?
Aangezien het enige probleem het insert statement is en de datum (heel lelijk) in een varchar veld wordt gedumpt dacht ik het op de volgende manier op te kunnen lossen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| CREATE OR REPLACE TRIGGER update_incorrect_date_format
AFTER INSERT OR UPDATE
ON WEBDATALOAD.LAAD_OPGAVE
REFERENCING NEW AS new OLD AS old
FOR EACH ROW
DECLARE
corrected_date varchar(20);
BEGIN
SELECT TO_CHAR((TO_DATE(:new.EINDDATUM, 'DDMMYYYY')), 'DD-MM-YYYY')
INTO corrected_date
FROM LAAD_OPGAVE
WHERE ID = :new.ID;
UPDATE LAAD_JAAROPGAVE
SET EINDDATUM= corrected_date
WHERE ID = :new.ID;
END;
/ |
Ik heb met het select statement getest en het lijkt te werken. Wellicht dat ik iets verkeerd doe met de :new zaken. Ik ben niet zo heel erg bekend met triggers. Ik heb me al lam gezocht op het internet, maar gok erop dat ik verkeerde keywords gebruik. Vind iig niet goed wat ik zoek.
Wellicht dat een van jullie me verder kan helpen?
What are clouds made of? Linux servers mostly!