-
Trigger
Hallo,
Ich will einen SQL Auslöser mit Database Navigator erstellen.
Hier das SQL-Statement welches ich ausprobiert habe:
------------------------------------------------
WHEN (PRISTW - PRSOLLW) > 0
THEN SET newrow.PRABWEI = 'Entspricht'
ELSE SET newrow.PRABWEI = 'Entspricht nicht';
END
------------------------------------------------
folgende Fehlermeldung wird zurückgegeben:
--------------------------------------------------------------------
Token ) ungültig. Gültige Token: < > = <> <= !< !> != >= ¬< ¬> ¬= IN IS NOT LIKE BETWEEN.
Nachrichten-ID:SQL0104
Ursache . . . . : Bei Token ) wurde ein Syntaxfehler entdeckt. Token ) ist kein gültiges Token. < > = <> <= !< !> != >= ¬< ¬> ¬= IN IS NOT LIKE BETWEEN ist eine Teilliste gültiger Token. Diese Liste geht davon aus, dass die Anweisung bis zu diesem Token korrekt ist. Es kann eine frühere Stelle in der Anweisung fehlerhaft sein, aber bis zu dieser Stelle scheint die Syntax gültig zu sein.Fehlerbeseitigung: Einen der folgenden Schritte durchführen und die Anforderung wiederholen:- SQL-Anweisung im Bereich des Token ) überprüfen. Anweisung korrigieren. Der Fehler kann ein fehlendes Komma oder Anführungszeichen sein, er kann in einem falsch geschriebenen Wort oder in der Anordnung der Klauseln begründet sein.- Ist das fehlerhafte Token , die Anweisung korrigieren, da sie mit einer ungültigen Klausel endet.
--------------------------------------------------------------------
/Jürgen
-
 Zitat von juergenkemeter
Hallo,
Ich will einen SQL Auslöser mit Database Navigator erstellen.
Hier das SQL-Statement welches ich ausprobiert habe:
------------------------------------------------
WHEN (PRISTW - PRSOLLW) > 0
THEN SET newrow.PRABWEI = 'Entspricht'
ELSE SET newrow.PRABWEI = 'Entspricht nicht';
END
------------------------------------------------
folgende Fehlermeldung wird zurückgegeben:
--------------------------------------------------------------------
Token ) ungültig. Gültige Token: < > = <> <= !< !> != >= ¬< ¬> ¬= IN IS NOT LIKE BETWEEN.
Nachrichten-ID:SQL0104
Ursache . . . . : Bei Token ) wurde ein Syntaxfehler entdeckt. Token ) ist kein gültiges Token. < > = <> <= !< !> != >= ¬< ¬> ¬= IN IS NOT LIKE BETWEEN ist eine Teilliste gültiger Token. Diese Liste geht davon aus, dass die Anweisung bis zu diesem Token korrekt ist. Es kann eine frühere Stelle in der Anweisung fehlerhaft sein, aber bis zu dieser Stelle scheint die Syntax gültig zu sein.Fehlerbeseitigung: Einen der folgenden Schritte durchführen und die Anforderung wiederholen:- SQL-Anweisung im Bereich des Token ) überprüfen. Anweisung korrigieren. Der Fehler kann ein fehlendes Komma oder Anführungszeichen sein, er kann in einem falsch geschriebenen Wort oder in der Anordnung der Klauseln begründet sein.- Ist das fehlerhafte Token , die Anweisung korrigieren, da sie mit einer ungültigen Klausel endet.
--------------------------------------------------------------------
/Jürgen
WHEN wird dann verwendet wenn der Trigger nur unter einer bestimmten Bedingung aktiviert werden soll. Bei Dir soll er jedoch immer aktiviert werden, Du willt nur unterschiedlich reagieren.
Du brauchst entweder eine IF oder eine CASE-Abfrage
Begin
If (PRISTW - PRSOLLW) > 0 THEN SET newrow.PRABWEI = 'Entspricht';
Else SET newrow.PRABWEI = 'Entspricht nicht';
End
oder
Begin
Case When PRISTW - RRSOLLW > 0 THEN SET newrow.PRABWEI = 'Entspricht';
Else SET newrow.PRABWEI = 'Entspricht nicht';
End
Wo kommen die Felder PRISTW und PRSOLLW her?
Du hast zu dem Zeitpunkt, zu dem der Trigger aktiviert wird nur den alten und/oder den neuen Satz zur Verfügung. Die Felder müssten m.E. Qualifiziert werden, also NewRow.PRISTW.
Nimm Dir doch mal das Redbook Stored Procedures, Triggers und User Defined Functions zur Brust, da ist alles genau erklärt.
Birgitta
-
Lösung!
Hi,
alles klar, hab kürzlich die Lösung gefunden:
---------------------------------------------
WHEN (PRISTW is not NULL and PRSOLLW is not NULL)
BEGIN
CASE
WHEN PRISTW - PRSOLLW > 0
THEN SET newrow.PRABWEI = 'Entspricht';
ELSE
SET newrow.PRABWEI = 'Entspricht nicht';
END CASE;
END
---------------------------------------------
Ciao,
Jürgen
Similar Threads
-
By Jenne in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 19-01-07, 09:24
-
By bigmoon in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 14-09-06, 18:26
-
By antvik in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 02-08-06, 18:04
-
By peter.kinne in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 20-04-06, 10:21
-
By Frank Pusch in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 17-05-01, 09:34
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks