Zum Inhalt springen

Sql*Loader: Unique Constraint trotz Sequence


ten13

Empfohlene Beiträge

Hallo zusammen,

ich importiere über den sql*loader Daten in eine Tabelle, auf der ein PK liegt. Dieser PK wird über eine Sequenz befüllt. Neuerdings läuft mir dieses Script auf "unique constraint"-Fehler - immer bei anderen Datensätzen (wenn ich den Versuch mehrmals starte).

Hat jemand eine Idee woran das liegen kann - der PK wird nur über die Sequenz gefüllt.

Gibt es eine Möglichkeit, mir vom sql*loader das komplette Statement ausgeben zu lassen, welches auf Fehler gelaufen ist?

Über Hilfe (wenn's auch nur Ideen sind) bin ich sehr dankbar.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

ich importiere über den sql*loader Daten in eine Tabelle, auf der ein PK liegt. Dieser PK wird über eine Sequenz befüllt. Neuerdings läuft mir dieses Script auf "unique constraint"-Fehler - immer bei anderen Datensätzen (wenn ich den Versuch mehrmals starte).

Hat jemand eine Idee woran das liegen kann - der PK wird nur über die Sequenz gefüllt.

Gibt es eine Möglichkeit, mir vom sql*loader das komplette Statement ausgeben zu lassen, welches auf Fehler gelaufen ist?

Über Hilfe (wenn's auch nur Ideen sind) bin ich sehr dankbar.

Hallo,

Sind auf der Zieltabelle evtl. Trigger aktiv, welche auch versuchen, eine Sequence zu schreiben. ?

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi dbwizard,

auf der Zieltabelle sind keine Trigger aktiv.

Von 100T zu importierenden Datensätzen, fallen 50 mit diesem Fehler raus. Aber mit jedem Versuch sind es 50 andere. Allerdings entsteht ein Fehler ziemlich regelmäßig, nämlich alle 2T Datensätze (plus/minus Toleranz) - will damit sagen, dass die Fehler nicht erst nach z.B. 50T Datensätzen entstehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi dbwizard,

auf der Zieltabelle sind keine Trigger aktiv.

Von 100T zu importierenden Datensätzen, fallen 50 mit diesem Fehler raus. Aber mit jedem Versuch sind es 50 andere. Allerdings entsteht ein Fehler ziemlich regelmäßig, nämlich alle 2T Datensätze (plus/minus Toleranz) - will damit sagen, dass die Fehler nicht erst nach z.B. 50T Datensätzen entstehen.

Ist den die Zieltabelle leer, wenn du den Import startest ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ein bad-File wird mir erstellt, allerdings ändern sich die fehlerhaften Datensätze permanent. Also es liegt nicht an den Daten, da beim nächsten Lauf, die Daten vom vorigen vorhanden sind.

Da bleibt dir nichts anderes übrig, als zu schauen, warum die Datensätz im BAD File nicht reingekommen sind ? Irgendwo wird offensichtlich ein Unique Constraint (Dass muss nicht notwendigerweise der PK sein), verletzt.

- Nimm einen der Row's aus dem BAD File und probiere ein "manuelles" Insert in die Betreffende Tabelle und schaue nach, wo der Fehler steckt

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

die Prüfung auf Eindeutigkeit ist nicht ganz trivial, vor allem beim SQL Loader, der ja Blockweise arbeitet bzw. falls Du einen Direct Load machst (Direct=TRUE) noch eine weitere Komponente dazu kommt. Daher sind die Sätze die dir rausfliegen unterschiedlich.

Gibt es neben dem PK noch einen weiteren Unique Constraint auf der Tabelle? Wird die Tabelle parallel geändert während Du Daten lädst? Verwendest Du einen Direct Load?

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Einen Datensatz zu nehmen, der mir rausfliegt nutzt mir nix, da mir nicht der Wert der Sequence ausgegeben wird (der, der den Fehler wohl verursacht) - oder kann ich das komplette sql-statement in einer logfile ausgeben lassen?

Beim Aufruf gebe ich kein DIRECT=TRUE mit, weshalb ich davon ausgehe, dass ich dies nicht benutze.

Es liegt keine weitere PK auf der Tabelle.

Die Tabelle wird nicht parallel verändert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...