![]() |
Datenbank: ORACLE • Version: 9 • Zugriff über: DATABASE
PROCEDURE aus TRIGGER heraus aufrufen ?
Hallo zusammen,
was muss ich an dem unten genannten Code ändern um die Procedure aufzurufen:
Delphi-Quellcode:
Danke und Gruss
CREATE OR REPLACE TRIGGER Test1 BEFORE INSERT OR UPDATE ON TABELLE1 FOR EACH ROW
BEGIN EXECUTE PROCEDURE1 (:new.ANLAGENNUMMER, :new.ANZAHL, :new.letzte_ap, :new.letzte_ip, :new.letzte_fp) END; / Holger |
Re: PROCEDURE aus TRIGGER heraus aufrufen ?
Du rufst sie auf, wie du sie in Delphi aufrufen würdest.
Und wie ich dir im anderen Thread empfahl: benutzte keine globalen Futionen, das wird einfach zu chaotisch. So würde ein Package aussehen:
SQL-Code:
Und so dein Trigger:
create or replace package Mööp is
procedure TestProc(aAnlagenNummer in Tabelle1.AnlagenNummer ,aAnzahl in Tabelle1.Anzahl ,aLetzteAP in Tabelle1.Letzte_AP ,aLetzteIP in Tabelle1.Letzte_IP ,aLetzteFP in Tabelle1.Letzte_FP); end Mööp; create or replace package body Mööp is procedure TestProc(aAnlagenNummer in Tabelle1.AnlagenNummer ,aAnzahl in Tabelle1.Anzahl ,aLetzteAP in Tabelle1.Letzte_AP ,aLetzteIP in Tabelle1.Letzte_IP ,aLetzteFP in Tabelle1.Letzte_FP) is begin -- was auch immer hier passiert... null; end TestProc; end Mööp;
SQL-Code:
btw: Schaue mal bei
create or replace trigger TestTrigger
before insert or update on Tabelle1 for each row begin Mööp.TestProc(:new.AnlagenNummer, :new.Anzahl, :new.Letzte_AP, :new.Letzte_IP, :new.Letzte_FP); end TestTrigger; ![]() |
Re: PROCEDURE aus TRIGGER heraus aufrufen ?
Ja fantastisch,
das ist es doch. Musste das Execute weg machen und ein Semikolon ans Ende. Gut dann werde ich Deinen Rat befolgen und die Sachen in ein Package packen. Vielen Dank und noch ein schönes WE. Mache für heute erst einmal Feierabend. Gruss Holger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:52 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