Oracle Sqllloader

Oracle Sqllloader

SQLLoader ist ein Tool in der Oracle -Datenbank, mit dem Sie die Daten von externen Dateien in eine Datenbank laden können. Mit diesem Tool können Sie die Daten aus mehreren Formaten laden, einschließlich der Abgrenzung (Comma, Registerkarte und Rohrgremit) Textdateien, fester Breite und Binärdateien. SQLlloader wird häufig verwendet, um die großen Datenmengen in eine Datenbank zu laden, da sie viel schneller als die herkömmlichen Einfügungsanweisungen sind.

SQL*Loader hat mehrere Vorteile gegenüber anderen Methoden zum Laden der Daten in eine Datenbank. Es ist schnell, effizient und kann große Datenmengen verarbeiten. Es kann auch die Daten aus mehreren Datendateien geladen und die spezifischen Datenzeilen basierend auf festgelegten Kriterien selektiv laden.

Dieses Tutorial zielt darauf ab, zu verstehen.

Um den SQLLoader zu verwenden, müssen Sie zunächst eine Steuerdatei erstellen, die die Details der Daten angibt, die Sie laden möchten, z. B. den Speicherort der Datendateien, das Datenformat und die Spalten und Tabellen, in die die Daten geladen werden sollten. Sobald die Steuerdatei erstellt wurde, können Sie den Befehl SQLLDR verwenden, um den SQLLoader auszuführen und die Daten in die Datenbank zu laden.

Oracle SQLLDR -Befehl

Mit dem SQLLDR -Befehl können Sie das SQLLoader -Tool aufrufen und eine angegebene Daten laden. Die Syntax für den Befehl ist wie gezeigt:

SQLLDR [Optionen] Control = Control_file

Wobei Control_file der Pfad und den Dateinamen der Steuerdatei ist, der die Details der Daten angibt, die Sie laden möchten.

Einige akzeptierte Optionen für den Befehl SQLLDR, um anzupassen, wie die Daten geladen werden, enthalten Folgendes:

  1. Benutzer-ID - Es gibt den Benutzernamen und das Passwort an, wenn Sie eine Verbindung zur Datenbank herstellen. Diese Option wird normalerweise im Formular UserID = Benutzername/Kennwort verwendet.
  2. Protokoll - Es gibt den Pfad und den Dateinamen der Protokolldatei an, in dem SQL*Loader Informationen über die Datenlast schreibt.
  3. Schlecht - Es gibt den Pfad und den Dateinamen der schlechten Datei an, in dem SQL*Loader die Datensätze schreibt, die nicht geladen werden konnten.
  4. Überspringen - Es gibt die Anzahl der Datensätze an, die vor dem Laden der Daten überspringen sollen. Dies kann nützlich sein, wenn Sie eine Header -Zeile in einer Datendatei überspringen möchten.

NOTIZ: Sie benötigen sowohl die Steuerdatei als auch die Datendatei. Wie der Name schon sagt, wird die Steuerdatei, auch als Parameterdatei bezeichnet, verwendet, um die Lastparameter zu definieren, die vom SQLLoader -Tool verwendet werden, während die Datendatei die Daten enthält, die in die Datenbank geladen werden sollen.

So verwenden Sie das SQLllloader -Tool

Lassen Sie uns demonstrieren, wie wir mit dem SQLLloader -Tool eine Beispiel -CSV -Datei in eine Datenbank laden können.

Die Datei enthält die folgenden Informationen:

1, Jessey, 5108751129385546, USA
2, Cullan, 30158095148532, China
3, Larry, 5602228155212200, Myanmar
4, Brewer, 676215234357374423, Vereinigte Staaten
5, Iago, 5010120503889936, Griechenland

Beginnen wir mit dem Definieren der Steuerdatei mit dem Inhalt, wie im Folgenden dargestellt:

LADE DATEN
In Tabellenbenutzer
EINFÜGUNG
Felder beendet von ',' '
(
Ausweis,
Vorname,
Kreditkarte,
Land
)

Der angegebene Code gibt die Steuerdatei für das SQL*Loader -Tool an, um die Daten aus einer CSV -Datei in eine Oracle -Datenbanktabelle zu laden.

In der Steuerdatei finden Sie Informationen wie:

  1. Die Lastdatenanweisung, die angibt, dass das SQL*Loader -Tool die Daten aus einer Datendatei in die Datenbank lädt.
  2. Die Infile -Klausel, die den Pfad zur Datendatei definiert. In unserem Fall handelt es sich um eine CSV -Datei namens user_info.dat
  3. Die in Tabellenklausel, die den Namen der Zieltabelle in der Datenbank festlegt. In unserem Fall ist es die Benutzertabelle.
  4. Als nächstes beendet die Felder mit einer Klausel, die angibt, dass die Datenwerte in der CSV -Datei durch ein Komma getrennt sind (,).
  5. Anschließend setzen wir die Liste der Spalten in der Tabelle der Benutzer und den entsprechenden Datentypen.
  6. Sie können auch die festgelegte Klausel verwenden, um zu definieren, dass die ID -Spalte in der Sequenz user_sequence auf den nächsten Wert eingestellt ist. Dies generiert automatisch einen eindeutigen Primärschlüsselwert für jeden in die Benutzertabelle geladenen Datensatz.

NOTIZ: Möglicherweise müssen Sie die im folgende Beispiel angezeigte User_sequence definieren:

Erstellen Sie Sequence user_sequence
Beginnen Sie mit 1
Inkrement um 1;

Diese Anweisung erstellt eine Sequenz namens user_sequence, die bei eins und in Schritten für jeden neuen Wert startet, der der Tabelle hinzugefügt wird.

Sobald wir die Daten- und Steuerungsdateien bereit haben, müssen wir die Parameterdatei definieren, mit der das SQLLLoader -Tool mit dem Lastvorgang umgeht.

UserID = HR/Passwort
control = control_file.CTL
log = user_load_data.Protokoll
bad = user_load_data.schlecht
Data = user_info.dat
Direct = true

Die Parameter werden wie folgt erklärt:

  1. Benutzer-ID - Der Benutzer -ID -Parameter gibt den Benutzernamen und das Kennwort an, die bei der Verbindung mit der Oracle -Datenbank verwendet werden sollen. In diesem Fall müssen wir uns als HR -Benutzer mit dem angegebenen Passwort verbinden.
  2. Kontrolle - Dieser Parameter definiert den Namen und den Speicherort der Steuerdatei für das SQL*Loader -Tool. In unserem Beispiel verwenden wir die Control_file.CTL aus dem aktuellen Arbeitsverzeichnis.
  3. Protokoll - Der Protokollparameter legt den Namen des Protokolldatei fest, den das SQL*Loader -Tool generiert, um die Ladevorgangsprotokolle zu verfolgen.
  4. schlecht - In diesem Fall stellt der schlechte Parameter den Namen der schlechten Datei dar, dass das SQL*Loader -Tool generiert wird, um Datensätze zu speichern, die aufgrund von Fehlern nicht geladen werden konnten.
  5. Daten - Dieser Parameter legt den Dateinamen in die Datendatei fest, die in die Datenbank geladen werden soll.
  6. Direkte - Schließlich gibt der direkte Parameter an, ob das SQL*Loader -Tool den direkten Pfadlastmodus verwenden soll. Der Direktmodus umgeht einige integrierte Datenbankprüfungen wie Integrität und Einschränkungsüberprüfungen. Dies kann die Ladegeschwindigkeit dramatisch erhöhen, insbesondere auf einem großen Datensatz.

Der nächste Schritt besteht darin, die Tabelle der Benutzer zu erstellen, in der wir die Zieldaten laden.

Tabellenbenutzer erstellen (Benutzer
ID -Nummer,
First_Name VARCHAR2 (50),
Credit_card varchar2 (100),
Land varchar2 (50)
);

Sobald alle Dateien fertig sind, können wir das Terminal öffnen und den SQLLDR -Befehl aufrufen, wie im folgenden Beispiel gezeigt:

$ sqldrldr userID = hr/password parafile = paramFile.Par

NOTIZ: Sie können die Daten, die Steuerung und die Paramische Datei mit einem annehmbaren Dateinamen benennen. Stellen Sie sicher, dass Sie den richtigen Dateinamen in den Befehlen verweisen.

Dies sollte die Daten in die Benutzertabelle laden und die folgende Ausgabe ausdrucken:

$ SQLLDR Parfile = Paramfile.Par
SQL*Loader: Release 19.0.0.0.0 - ****
Pfad verwendet: direkt
LOAD Fertig.
Tabellen Benutzer:
5 Zeilen erfolgreich geladen.
Überprüfen Sie die Protokolldatei:
user_load_data.Protokoll

Um zu überprüfen, ob die Daten in die Datenbank geladen wurden, können wir alle Werte aus der Tabelle wie folgt auswählen:

Wählen Sie * von Benutzern aus;

Ergebnis:

Abschluss

In diesem Tutorial haben Sie das SQLllloader-Tool, ein Befehlszeilendienstprogramm in der Oracle-Datenbank, begegnet, mit dem Sie die Daten aus den externen Dateien in eine Oracle-Datenbank laden können. Sie haben die verschiedenen Methoden und Techniken entdeckt, einschließlich der Definition einer Steuerdatei und einer Parameterdatei und dem Laden der Daten in die Datenbank. Obwohl das SQLLoader -Tool anfangs einschüchternd erscheinen kann, hoffen wir, dass dieses Tutorial Ihnen dabei geholfen hat, das Tool sicherer zu werden.

Die Verwendung des SQL*Loader -Tools kann daher für die schnelle und effiziente Belastung großer Datenmengen in eine Oracle -Datenbank von Vorteil sein.