![]() |
Datenbank: ORACLE • Version: 9 • Zugriff über: DATABASE
TRIGGER -> Daten auf selbiger Tabelle ändern ?
Hallo zusammen,
ich habe folgendes Problem: Wenn ich diese Procedure:
Delphi-Quellcode:
durch unten genannten Trigger aufrufe, kommt die Fehlermeldung:
CREATE OR REPLACE PROCEDURE NAECHSTE_PRUEFUNG (AN IN NUMBER, DB IN NUMBER) IS
my_ap_datum DATE; ... BEGIN ... UPDATE SYSDBP.DBP_LEISTUNGSWERTE SET NAECHSTE_P = my_ap_datum, NAECHSTE_P_ART = 'Äussere Prüfung', NAECHSTE_P_DURCH = my_ap_person WHERE SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER = AN AND SYSDBP.DBP_LEISTUNGSWERTE.ANZAHL = DB; ... END; / Tabelle SYSDBP.DBP_LEISTUNGSWERTE wird gerade geändert, Trigger/Funktion sieht dies möglicherweise nicht ORA-06512:
Delphi-Quellcode:
Ich möchte quasi mit dem Trigger der auf der Tabelle SYSDBP.DBP_LEISTUNGSWERTE liegt, in der gleichen Tabelle Änderungen durchführen.
CREATE OR REPLACE TRIGGER DBP_NAECHSTE_PRUEFUNG_BIU BEFORE INSERT OR UPDATE ON SYSDBP.DBP_LEISTUNGSWERTE FOR EACH ROW
BEGIN NAECHSTE_PRUEFUNG (:new.ANLAGENNUMMER, :new.ANZAHL); END; / Oder gibt es da eine andere Lösung. Sowas soll passieren: In Tabelle1 Spalte1 wird ein Wert geändert. Der Trigger oder was anderes soll nun in Tabelle1 Spalte2 z.B. das Ergebnis aus Spalte1 * 2 reinschrieben. Gruss und schon mal dank für Hilfe Holger |
Re: TRIGGER -> Daten auf selbiger Tabelle ändern ?
Das was du da beschreibst nennt man das "Mutating Table" Problem bei ORACLE.
Wenn du bei Google danach suchst, dann gibt es da verschiedene Ansätze um das Problem zu umgehen. Beispielhaft hab ich dir zwei davon mal rausgesucht: ![]() ![]() |
Re: TRIGGER -> Daten auf selbiger Tabelle ändern ?
Vielen dank für die Links,
habe das jetzt umgebaut, so dass es klappt Gruss Holger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz