Was ist das BAD-Dateiformat?
Eine .bad-Datei ist ein Oracle SQL*Loader Bad File - eine Text-Ausgabedatei, die SQL*Loader schreibt, wenn Zeilen während eines Massendaten-Ladevorgangs in eine Oracle-Datenbank abgelehnt werden.
Die Datei enthält eine wortgetreue Kopie jeder Zeile, die nicht geladen werden konnte, im selben Format wie die ursprüngliche Eingabe (CSV, feste Breite oder Stream). Da der Inhalt die Quelle exakt widerspiegelt, können korrigierte Zeilen direkt wieder in sqlldr eingelesen werden, wobei dieselbe .ctl-Steuerdatei ohne Umformatierung verwendet wird - was die .bad-Datei eher zu einem Reparatur-Artefakt als zu einem bloßen Fehlerprotokoll macht.
Datensätze landen aus drei Gründen in der .bad-Datei:
- Die Zeile verletzt eine Oracle-Constraint (doppelter eindeutiger Schlüssel,
NOT NULL-Verletzung usw.). - SQL*Loader kann die Feldgrenzen in einer fehlerhaften Zeile mit Trennzeichen nicht parsen.
- Ein Feldwert kann nicht in den Datentyp der Zielspalte konvertiert werden.
Die .bad-Datei unterscheidet sich von der .dsc-Discard-Datei. Discards sind Zeilen, die absichtlich durch eine WHEN-Klausel in der Steuerdatei übersprungen wurden - sie wurden nie versucht zu laden. „Bad“-Datensätze wurden versucht und sind fehlgeschlagen.
Wenn jede Eingabezeile erfolgreich geladen wird, wird die .bad-Datei überhaupt nicht erstellt. Der Standardname leitet sich von der Eingabedatendatei ab (z. B. data.csv → data.bad), sofern er nicht mit BADFILE= in der Steuerdatei oder BAD= in der Befehlszeile überschrieben wird.
SQL*Loader ist seit Version 6 (1988) Teil der Oracle Database und bleibt ein Kernwerkzeug in den aktuellen Oracle Database 23ai-Releases.
Sicherheit
RISIKO: LOWKlartext-Datendatei; nicht ausführbar. Kann sensible Geschäftsdaten (PII, Finanzdatensätze) aus einem fehlgeschlagenen Import enthalten - entsprechend behandeln, Dateisystemzugriff auf autorisierte DBAs und ETL-Bediener beschränken.
Formatdetails
kurz gefasst- Microsoft Exchange Server Bad-Message-Datei - Der Exchange-SMTP-Transport speichert unzustellbare oder fehlerhafte Nachrichten in .BAD-Dateien im Exchange-Warteschlangenverzeichnis.
- Allgemeiner „Bad Data“-Marker (verschiedene Anwendungen) - Einige ETL-Tools und Legacy-Programme verwenden .bad als generische Erweiterung für Fehler-/Reject-Ausgabedateien.
Programme zum Öffnen von BAD-Dateien
Technische Details
technische Spezifikation| Formattyp | Text-Spiegelung der abgelehnten Zeilen (gleiche Struktur wie die SQL*Loader-Eingabedatendatei) |
| Kodierung | Entspricht der Eingabedatendatei - ASCII, UTF-8 oder Oracle NLS-Zeichensatz, wie in der Steuerdatei konfiguriert |
| Inhalt | Wortgetreue Kopie jeder Zeile, die während des SQL*Loader-Laufs abgelehnt wurde, im ursprünglichen Eingabeformat |
| Ablehnungsgründe | Oracle-Constraint-Verletzung (PK/UK/NOT NULL); nicht parsbare Feldtrennzeichen; Datentyp-Konvertierungsfehler |
| LOB-Datenbehandlung | LOB-Inhalte aus LOBFILE- oder SDF-Quellen werden NICHT in die .bad-Datei geschrieben, wenn ihre Zeile abgelehnt wird |
| Standard-Dateiname | <input_datafile_basename>.bad (z. B. data.csv → data.bad) |
| Dateinamen-Überschreibung | BADFILE= in der .ctl-Steuerdatei oder BAD= in der sqlldr-Befehlszeile |
| Dateierstellung | Wird nur erstellt, wenn mindestens eine Zeile abgelehnt wird; fehlt bei vollständig erfolgreichen Ladevorgängen |
| Unterscheidung von .dsc | .dsc (Discard) enthält Zeilen, die durch eine WHEN-Klausel übersprungen wurden - absichtliches Auslassen, keine Fehler; .bad enthält Zeilen, bei denen das Einfügen fehlschlug |
| Wiederverwendungs-Workflow | Die korrigierte .bad-Datei kann direkt mit derselben .ctl-Steuerdatei ohne Umformatierung neu geladen werden |
| Plattformunterstützung | Jede Oracle Database-Plattform: Linux, Unix, Windows, Solaris, AIX |
| Veröffentlicht | Oracle 7 era, circa 1992 (SQL*Loader has existed since Oracle 6, 1988) |
| Neueste Version | N/A - format is defined by the input data format; no versioning |
| Spezifikation | docs.oracle.com |
BAD-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu BAD-Dateien.