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

    Doppelter Satzschlüssel

    Hallo zusammen,

    ich bekomme folgenden Fehler:
    Nachricht . . . : Doppelter Satzschlüssel in Teildatei FEHLE00001.
    Ursache . . . . : Die Ausgabe- oder Fortschreibungsoperation bei
    Teildateinummer 1, Satznummer 0, Format FEHLERF für Teildatei FEHLE00001 in
    Datei FEHLER_NRT in Bibliothek SAD_UTIL ist fehlgeschlagen. Teildateinummer
    1, Satznummer 163, Format FEHLERF, hat den gleichen Schlüssel wie
    Teildateinummer 1, Satznummer 0, Format FEHLERF. Ist die Satznummer null,
    ist der doppelte Satzschlüssel bei einer Ausgabeoperation entstanden.
    Fehlerbeseitigung: Einen der beiden Satzschlüssel ändern, damit die Schlüssel
    eindeutig sind. Anschließend die Anforderung wiederholen.

    Den Satz wollte ich über UPDDTA einfügen. Auf unserem Testsystem ging es problemlos nur auf dem Livesystem habe ich diesen Fehler bekommen.

    Die Datei hat 3 Felder unter anderem das Feld ID (autoincrement)

    einen weiteren schlüssel auf die Nachrichten-ID. Hier wollte ich einen Wert eintragen, der definitiv noch nicht in der Datei drin ist. Also kann es an diesem Wert nicht liegen. Deshalb ist meine Vermutung das Feld ID. Aber es ist im MOment egal welche Werte ich wo eingebe (ich habe es jetzt auch aus Verzweiflung versucht in die ID irgend einen Wert einzutragen) es kommt immer dieser Fehler, nur die Satznummer (hier 163) ändert sich immer.

    Weiß jemand was dazu?

    Danke!

  2. #2
    Registriert seit
    Nov 2020
    Beiträge
    331
    Wenn die ID automatisch generiert wird reicht es wenn du die ID Spalte beim Insert weg lässt.

    Via SQL:

    Insert into FEHLE00001 (Spalte1, Spalte2) values ('Wert1', 'Wert2')

    oder

    Insert into FEHLE00001 values (default, 'Wert1', 'Wert2')

    lg Andreas

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Da ja die Satznummern angegeben sind, sollte man die Daten ja prüfen können.
    Wer weiß, wie UPDDTA mit Neuanlagen so umgeht.
    Besser ist es, einen SQL-Insert zu schreiben.
    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

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Ich würde zunächst einmal prüfen was die letzte ID ist und welches die nächste sein sollte.
    Code:
    Select Next_Identity_Value, a.* 
       from qsys2.syspartitionstat a
       Where Table_Schema = 'YOURSCHEMA'
              and Table_Name = 'YOURTABLE';
    Sofern die Id automatisch generiert wird und die nächte Id (s.o.) vor der höchsten Id in der Tabelle liegen, würde ich den (Re)Start-Wert der Id neu setzten (> höchste Id in der Tabelle). Ansonsten bekommst Du bei jedem Satz den Du (egal wie) schreiben willst Probleme.

    Code:
    Alter Table YOURSCHEMA.YOURTABLE
       Alter Column IDCOLUMN Restart With 4711;
    Birgitta
    Birgitta Hauser

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

  5. #5
    Registriert seit
    May 2004
    Beiträge
    444
    Ich habe das bisher immer mit UPDDTA gemacht, ohne Probleme. Und wie gesagt, auf dem Testsystem hat es auch funktioniert. Aber ich versuche das mal mit dem Restart. Danke

Similar Threads

  1. Erfassen-Maske (speichern Doppelter Satzschlüssel)
    By ZeroQool in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 27-07-07, 09:31
  2. drop procedure bei doppelter Procedure?
    By rebe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 17-05-06, 11:32
  3. doppelter Schlüssel
    By SBaum in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 24-01-03, 11:17

Berechtigungen

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