Co to jest format pliku BAD?
Plik .bad to Oracle SQL*Loader Bad File - tekstowy plik wyjściowy, który SQL*Loader zapisuje w przypadku odrzucenia wierszy podczas masowego ładowania danych do bazy danych Oracle.
Plik zawiera dosłowną kopię każdego wiersza, którego nie udało się załadować, w tym samym formacie co oryginalne dane wejściowe (CSV, stała szerokość lub strumień). Ponieważ zawartość dokładnie odzwierciedla źródło, poprawione wiersze można przesłać z powrotem do sqlldr przy użyciu tego samego pliku sterującego .ctl bez zmiany formatowania - co czyni plik .bad artefaktem typu „napraw i spróbuj ponownie”, a nie tylko dziennikiem błędów.
Rekordy trafiają do pliku .bad z trzech powodów:
- Wiersz narusza ograniczenie bazy Oracle (duplikat klucza unikalnego, naruszenie
NOT NULLitp.). - SQL*Loader nie może przeanalizować granic pól w źle sformatowanym wierszu rozdzielanym.
- Wartość pola nie może zostać przekonwertowana na typ danych kolumny docelowej.
Plik .bad różni się od pliku odrzuceń .dsc (discard file). Pliki odrzuceń to wiersze celowo pominięte przez klauzulę WHEN w pliku sterującym - nigdy nie podjęto próby ich załadowania. Rekordy „bad” to takie, których próba załadowania zakończyła się niepowodzeniem.
Jeśli każdy wiersz wejściowy zostanie załadowany pomyślnie, plik .bad w ogóle nie zostanie utworzony. Domyślna nazwa pochodzi od pliku danych wejściowych (np. data.csv → data.bad), chyba że zostanie nadpisana parametrem BADFILE= w pliku sterującym lub BAD= w wierszu poleceń.
SQL*Loader jest częścią Oracle Database od wersji 6 (1988) i pozostaje kluczowym narzędziem w obecnych wydaniach Oracle Database 23ai.
Bezpieczeństwo
RYZYKO: LOWPlik danych w formacie tekstowym; nie można go uruchomić. Może zawierać wrażliwe dane biznesowe (PII, rekordy finansowe) z nieudanego importu - należy postępować odpowiednio, ograniczając dostęp do systemu plików dla upoważnionych administratorów baz danych i operatorów ETL.
Szczegóły formatu
w pigułce- Plik błędnej wiadomości Microsoft Exchange Server - Transport SMTP w Exchange przechowuje niedostarczalne lub źle sformatowane wiadomości w plikach .BAD w katalogu kolejki Exchange.
- Ogólny znacznik „błędnych danych” (różne aplikacje) - Niektóre narzędzia ETL i starsze programy używają rozszerzenia .bad jako ogólnego rozszerzenia dla plików wyjściowych z błędami lub odrzutami.
Programy otwierające pliki BAD
Szczegóły techniczne
specyfikacja| Typ formatu | Tekstowe odzwierciedlenie odrzuconych wierszy (ta sama struktura co plik danych wejściowych SQL*Loader) |
| Kodowanie | Zgodne z plikiem danych wejściowych - ASCII, UTF-8 lub zestaw znaków Oracle NLS skonfigurowany w pliku sterującym |
| Zawartość | Dosłowna kopia każdego wiersza odrzuconego podczas uruchomienia SQL*Loader, w oryginalnym formacie wejściowym |
| Przyczyny odrzucenia | Naruszenie ograniczeń Oracle (PK/UK/NOT NULL); nieczytelne ograniczniki pól; błąd konwersji typu danych |
| Obsługa danych LOB | Zawartość LOB ze źródeł LOBFILE lub SDF NIE jest zapisywana w pliku .bad, gdy jego wiersz zostanie odrzucony |
| Domyślna nazwa pliku | <nazwa_bazowa_pliku_wejściowego>.bad (np. data.csv → data.bad) |
| Nadpisanie nazwy pliku | BADFILE= w pliku sterującym .ctl lub BAD= w wierszu poleceń sqlldr |
| Tworzenie pliku | Tworzony tylko wtedy, gdy co najmniej jeden wiersz zostanie odrzucony; nieobecny przy całkowicie pomyślnym ładowaniu |
| Różnica względem .dsc | .dsc (discard) przechowuje wiersze pominięte przez klauzulę WHEN - celowe pominięcia, a nie błędy; .bad przechowuje wiersze, których wstawienie nie powiodło się |
| Przebieg ponownego użycia | Poprawiony plik .bad może być załadowany bezpośrednio tym samym plikiem sterującym .ctl bez zmiany formatowania |
| Obsługiwane platformy | Dowolna platforma Oracle Database: Linux, Unix, Windows, Solaris, AIX |
| Wydano | Oracle 7 era, circa 1992 (SQL*Loader has existed since Oracle 6, 1988) |
| Najnowsza wersja | N/A - format is defined by the input data format; no versioning |
| Specyfikacja | docs.oracle.com |
Konwersje BAD
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki BAD.