Hallo zusammen,
ich habe ein kleineres Problem bei einem Trigger in meiner Oracle XE Datenbank und will einfach nicht auf den Fehler kommen, vielleicht entdeckt ihn ja wer von euch =)
Ich habe eine Tabelle I_ZEIT in welches ich I_TAG, I_JAHR und I_MONAT habe. Zusätzlich das Feld I_WOCHE, in welchem die jeweilige Jahreswohe bei einem Insert/Update durch einen Trigger eingetragen werden soll.
Mein Trigger schaut so aus:
create or replace trigger "T_I_ZEIT_WOCHENTAG"
BEFORE insert or update
on "I_ZEIT"
for each row
declare wochentag number;
begin
wochentag := :new.i_zeit_monat * 10000;
wochentag := wochentag + :new.i_zeit_jahr;
wochentag := wochentag + :new.i_zeit_tag * 1000000;
:new.i_zeit_woche := to_number(to_char(to_date('wochentag','ddmmyyyy'),'WW'));
end;
Der Trigger wird ohne Fehler kompiliert:
PL/SQL code successfully compiled (15:10:02)
Wenn ich nun aber einen Insert auf den Table mache kommt folgende Fehlermeldung:
error ORA-01858: Ein nicht-numerisches Zeichen wurde gefunden, während ein numerisches Zeichen erwartet wurde ORA-06512: in "DWP1138.T_I_ZEIT_WOCHENTAG", Zeile 8 ORA-04088: Fehler bei der Ausführung von Trigger 'DWP1138.T_I_ZEIT_WOCHENTAG'
Meiner Ansicht nach ist alles korrek gecastet, ich habe es auch schon in anderen Cast Variationen versucht, aber es will einfach nicht funktionieren /o\
Vielleicht hat jemand von euch ja noch eine Idee?