Wie ORA-30926 Fehler beheben? (Doc-ID 471956,1)
1) Identifizieren Sie die fehlerhafte Anweisung
alte Sitzung Satz Ereignisse ‚30926 Spur Namen errorstack Ebene 3‘;
oder
altes System gesetzt Ereignisse ‚30926 Spur Name errorstack off‘;
und nach .trc-Dateien in UDUMP suchen, wenn sie auftritt.
2) Nachdem Sie die SQL-Anweisung gefunden haben, prüfen Sie, ob sie korrekt ist (möglicherweise mithilfe von explain plan oder tkprof, um den Abfrageausführungsplan zu überprüfen) und Statistiken zu den betreffenden Tabellen zu analysieren oder zu berechnen. Das erneute Erstellen (oder Löschen/Neuerstellen) von Indizes kann ebenfalls hilfreich sein.
3.1) Ist die SQL-Anweisung eine MERGE? Bewerten Sie die von der USING-Klausel zurückgegebenen Daten, um sicherzustellen, dass keine doppelten Werte in der Verknüpfung vorhanden sind. Ändern Sie die Zusammenführungsanweisung so, dass sie eine deterministische Where-Klausel enthält.
3.2) Ist dies eine UPDATE-Anweisung über eine Sicht? Wenn ja, versuchen Sie das Suchergebnis in eine Tabelle zu füllen und versuchen Sie, die Tabelle direkt zu aktualisieren.
3.3) Liegt ein Trigger auf dem Tisch? Versuchen Sie es zu deaktivieren, um zu sehen, ob es immer noch fehlschlägt.
3.4) Enthält die Anweisung eine nicht zusammenführbare Sicht in einer 'IN-Unterabfrage'? Dies kann dazu führen, dass doppelte Zeilen zurückgegeben werden, wenn die Abfrage eine Klausel "FOR UPDATE" enthält. Siehe Bug 2681037
3.5) Hat die Tabelle ungenutzte Spalten? Das Ablegen dieser kann den Fehler verhindern.
4) Wenn das Ändern der SQL den Fehler nicht behebt, kann das Problem mit der Tabelle auftreten, insbesondere wenn verkettete Zeilen vorhanden sind. 4.1) Führen Sie die Anweisung 'ANALYZE TABLE VALIDATE STRUCTURE CASCADE' für alle Tabellen aus, die in SQL verwendet werden, um festzustellen, ob in der Tabelle oder ihren Indizes Fehler vorhanden sind. 4.2) Überprüfen Sie alle CHAINED- oder migrierten ROWs auf der Tabelle, und beseitigen Sie sie. Es gibt Möglichkeiten, dies zu minimieren, z. B. die korrekte Einstellung von PCTFREE. Verwendung Hinweis 122.020,1 - Row Chaining und Migration 4.3) Wenn die Tabelle zusätzlich Index organisiert ist, finden Sie unter: Hinweis 102.932,1 - Überwachung Chained Rows auf IOTs
10x Schöne Antwort. Es half mir –
Von mir auch .. direkt am Kopf – TonyP
Dies ist wahrscheinlich, warum andere Ansätze (für mich) auch andere Fehler für mich zurückgegeben (wie 'Prozedur, Funktion, Paket oder Typ ist hier nicht erlaubt' und 'Kann nicht ändern a Spalte, die zu einem nicht Schlüssel-konservierten Tabellenfehler beim Einfügen in eine Ansicht "). ~ Wenn es jemand anderen hilft, habe ich den gleichen Fehler auch nach dem Hinzufügen distinct in, bis ich die Joins meiner inneren Abfrage neu angeordnet, so begann ich mit der Tabelle, die mehr als eine Zeile zurückgegeben wurde und innere verbunden von dort ... wenn das Sinn macht. – jinglesthula