Hva er BAD-filformatet?
En .bad-fil er en Oracle SQL*Loader Bad File - en utdatafil i ren tekst som SQL*Loader skriver når den avviser rader under en massedatainlasting til en Oracle-database.
Filen inneholder en ordrett kopi av hver rad som ikke kunne lastes inn, i samme format som den opprinnelige inndataen (CSV, fast bredde eller strøm). Fordi innholdet speiler kilden nøyaktig, kan rettede rader mates rett tilbake til sqlldr ved hjelp av den samme .ctl-kontrollfilen uten omformatering - noe som gjør .bad-filen til et verktøy for reparasjon og gjentakelse snarere enn bare en feillogg.
Oppføringer havner i .bad-filen av tre grunner:
- Raden bryter en Oracle-begrensning (duplikat unik nøkkel,
NOT NULL-brudd, osv.). - SQL*Loader kan ikke tolke feltgrenser i en feilformatert avgrenset rad.
- En feltverdi kan ikke konverteres til målkolonnens datatype.
.bad-filen er forskjellig fra .dsc-forkastingsfilen (discard file). Forkastede rader er rader som bevisst ble hoppet over av en WHEN-setning i kontrollfilen - de ble aldri forsøkt lastet inn. «Bad»-oppføringer ble forsøkt lastet inn, men feilet.
Hvis hver inndatarad lastes inn vellykket, blir ikke .bad-filen opprettet i det hele tatt. Standardnavnet utledes fra inndatafilen (f.eks. data.csv → data.bad) med mindre det overstyres med BADFILE= i kontrollfilen eller BAD= på kommandolinjen.
SQL*Loader har vært en del av Oracle Database siden versjon 6 (1988) og forblir et kjerne-verktøy i nåværende Oracle Database 23ai-utgivelser.
Sikkerhet og trygghet
RISIKO: LOWDatafil i ren tekst; kan ikke kjøres. Kan inneholde sensitive forretningsdata (personopplysninger, økonomiske poster) fra en mislykket import - behandle deretter, begrens tilgang i filsystemet til autoriserte DBA-er og ETL-operatører.
Formatdetaljer
i et nøtteskall- Microsoft Exchange Server bad-message-fil - Exchange SMTP-transport lagrer uleverbare eller feilformaterte meldinger i .BAD-filer i Exchange-køkatalogen.
- Generell markør for «dårlige data» (ulike applikasjoner) - Enkelte ETL-verktøy og eldre programmer bruker .bad som en generisk filendelse for utdatafiler med feil eller avviste data.
Programmer som åpner BAD-filer
Tekniske detaljer
dyp spesifikasjon| Format-type | Speiling av avviste rader i ren tekst (samme struktur som SQL*Loader-inndatafilen) |
| Koding | Samsvarer med inndatafilen - ASCII, UTF-8 eller Oracle NLS-tegnsett som konfigurert i kontrollfilen |
| Innhold | Ordrett kopi av hver rad som ble avvist under SQL*Loader-kjøringen, i originalt inndataformat |
| Årsaker til avvisning | Brudd på Oracle-begrensning (PK/UK/NOT NULL); utolkelige feltavgrensere; feil ved datatypekonvertering |
| LOB-datahåndtering | LOB-innhold fra LOBFILE- eller SDF-kilder blir IKKE skrevet til .bad-filen når raden avvises |
| Standard filnavn | <inndatafil_basenavn>.bad (f.eks. data.csv → data.bad) |
| Overstyring av filnavn | BADFILE= i .ctl-kontrollfilen, eller BAD= på sqlldr-kommandolinjen |
| Filopprettelse | Opprettes kun når minst én rad blir avvist; fraværende ved helt vellykkede inlastinger |
| Skille fra .dsc | .dsc (discard) inneholder rader hoppet over av en WHEN-setning - tilsiktede hopp, ikke feil; .bad inneholder rader der innsetting feilet |
| Arbeidsflyt for gjenbruk | Rettet .bad-fil kan lastes inn direkte med samme .ctl-kontrollfil uten omformatering |
| Plattformstøtte | Alle Oracle Database-plattformer: Linux, Unix, Windows, Solaris, AIX |
| Utgitt | Oracle 7 era, circa 1992 (SQL*Loader has existed since Oracle 6, 1988) |
| Siste versjon | N/A - format is defined by the input data format; no versioning |
| Spesifikasjon | docs.oracle.com |
BAD-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om BAD-filer.