[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2004
    Beiträge
    47

    SQL-Trigger im Navigator erstellen

    Hallo zusammen,
    ich habe bereits den ganzen Tag gesucht aber nicht die richtige Antwort gefunden.

    Ich habe bereits Trigger in Verbindung mit RPG eingesetzt. Das Thema ist mir also nicht vollkommen fremd.

    Nun versuche ich über den iSeriesNavigator einen SQL-Trigger zu erstellen der nach jeglicher Änderung die Daten von der DB2-Datei in einer SQL-Tabelle kopiert. Beide Dateien haben den gleichen Satzaufbau. Nun komme ich nicht weiter da es offensichtlich an SQL-Erfahrung mangelt.

    Wie bekomme ich diesen einen Datensatz per SQL von Tabelle a nach tabelle B?

    Danke für eure Hilfe
    Gruß, cono2000
    http://www.cono2000.de

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Mittels einer klassischen Insert-Anweisung:

    insert into mytable (f1, f2, ...)
    values(before.f1, before.f2, ...)

    before = Prefix für dein Before-Immage.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    May 2004
    Beiträge
    47
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Mittels einer klassischen Insert-Anweisung:

    insert into mytable (f1, f2, ...)
    values(before.f1, before.f2, ...)

    before = Prefix für dein Before-Immage.
    Danke.

    Das mit dem Insert klappt.
    INSERT INTO LABORDA . LAUKO1SQ ( LKFIRM , LKAUFT )

    Aber die Values Zuweisung bekomme ich nicht hin.
    values(LAUKOTSTPF.LKFIRM, LAUKOTSTPF.LKAUFT)
    Fehlermeldung:
    Nachricht: [SQL0312] Variable LKFIRM nicht definiert oder nicht verwendbar.

    Eines ist sicher: In der Datei LAUKOTSTPF befinden sich das Feld LKFIRM

    Muss ich vorher noch mit einer Select-Anweisung den letzten hinzugefügten Datensatz ermitteln?
    Gruß, cono2000
    http://www.cono2000.de

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Poste mal den SQL Code von Deinem Trigger (vor allem den Part mit Referencing OLD/NEW Row as).

    Der Correlation-Name, der hinter as angegeben wird muss bei der Qualifizierung der Values-Werte verwendet werden (und nicht der Datei-Name!).

    Wenn beide Tabellen tatsächlich den gleichen Aufbau, die gleichen Feld-Namen in der gleichen Reihenfolge haben, kannst Du auch mal die folgende Syntax ausprobieren :

    Code:
    Insert Into NewFile 1 Rows Values(Old.*);
    ... ist nicht getestet und könnte deshalb auch schief gehen!

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    May 2004
    Beiträge
    47
    Herzlichen Dank.

    Es hat jetzt funktioniert.
    Ich hatte im iNav keinen Eintrag in "Korrelationsname für neue Zeile" angegeben.
    Hier der generierte SQL-String:

    /* SQL-Auslöser LABORDA.LAUKO1 wird erstellt */
    CREATE TRIGGER LABORDA.LAUKO1 AFTER INSERT ON LABORDA.LAUKO1PF REFERENCING NEW a FOR EACH ROW BEGIN ATOMIC

    INSERT INTO LABORDA . LAUKO1SQ
    (LKFIRM,
    LKAUFT,
    ...
    LKUSER,
    LKSTAT)

    VALUES
    (A . LKFIRM,
    A . LKAUFT,
    ...
    A . LKUSER ,
    A . LKSTAT ) ;

    END;
    Gruß, cono2000
    http://www.cono2000.de

Similar Threads

  1. SQL Trigger
    By Jenne in forum NEWSboard Programmierung
    Antworten: 0
    Letzter Beitrag: 19-01-07, 09:24
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL Trigger
    By bigmoon in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-09-06, 18:26
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. Erstellen Trigger über SQL / Read Funktion
    By GHoffmann in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 07-07-05, 09:18

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •