Verwenden der Konsole zum Einfügen von Tabellendaten
Erfahren Sie, wie Sie Daten über die NoSQL-Konsole in Oracle NoSQL Database Cloud Service-Tabellen einfügen.
In der NoSQL-Konsole können Sie neue Zeilen in die Oracle NoSQL Database Cloud Service-Tabellen in den folgenden Modi einfügen:
-
Einfacher Eingabemodus: Mit diesem Modus können Sie die Werte für die neuen Zeilen deklarativ angeben.
-
Erweiterter JSON-Eingabemodus: Mit diesem Modus können Sie die Werte für die neuen Zeilen im JSON-Format angeben.
-
Mit der INSERT-Anweisung können Sie eine Zeile hinzufügen. Wählen Sie unter NoSQL-Tabellen die Tabelle aus, in der Sie eine Zeile hinzufügen möchten. Fügen Sie unter Daten explorieren die INSERT-Anweisung in das Textfeld für die SQL-Anweisung ein, und führen Sie den Befehl aus.
-
Sie können die Daten auch per Browser per Bulkvorgang aus einer lokalen Datei in die Tabelle hochladen.
Hinweis: Wenn es sich bei der Tabelle um eine globale aktive Tabelle handelt, fügt das Hinzufügen von Daten in einer Region auch die Daten zu allen regionalen Tabellenreplikationen hinzu.
Daten in Tabellen einfügen: Einfacher Eingabemodus
Erfahren Sie, wie Sie Daten mit dem Einfügemodus "Einfache Eingabe" in Oracle NoSQL Database Cloud Service-Tabellen einfügen.
So fügen Sie Daten in Tabellen ein:
-
Rufen Sie über die Infrastructure-Konsole die NoSQL-Konsole auf. Siehe Service über die Infrastructure-Konsole aufrufen.
-
Die NoSQL-Konsole listet alle Tabellen im Mandanten auf. Um die Tabellendetails anzuzeigen, führen Sie einen der folgenden Schritte aus:
-
Klicken Sie auf den Tabellennamen, oder
-
Klicken Sie auf das Aktionsmenü, das dem Tabellennamen entspricht, und wählen Sie Details anzeigen aus.
Die Seite "Tabellendetails" wird geöffnet.
-
-
Klicken Sie auf Zeile einfügen.
-
Wählen Sie im Fenster "Zeile einfügen" die Option Einfache Eingabe für Eingabemodus aus.
-
Alle Spalten in der Tabelle werden aufgeführt. Geben Sie die Daten für die Spalten der Tabelle ein. Bei einigen Spaltentypen, wie "Binär", laden Sie die Daten hoch.
Hinweis: Die Eingabe eines Wertes ist für alle Spalten obligatorisch, die nicht auf null gesetzt werden können.
-
Klicken Sie auf Zeile einfügen.
Der Datensatz wird in die Tabelle eingefügt.
Um die Hilfe für die aktuelle Seite anzuzeigen, klicken Sie oben auf der Seite auf den Hilfelink.
Daten in Tabellen einfügen: Erweiterter JSON-Eingabemodus
Erfahren Sie, wie Sie Daten mit dem erweiterten JSON-Eingabemodus in Oracle NoSQL Database Cloud Service-Tabellen einzufügen.
So fügen Sie Daten in Tabellen ein:
-
Rufen Sie über die Infrastructure-Konsole die NoSQL-Konsole auf. Siehe Service über die Infrastructure-Konsole aufrufen.
-
Die NoSQL-Konsole listet alle Tabellen im Mandanten auf. Um die Tabellendetails anzuzeigen, führen Sie einen der folgenden Schritte aus:
-
Klicken Sie auf den Tabellennamen, oder
-
Klicken Sie auf das Aktionsmenü, das dem Tabellennamen entspricht, und wählen Sie Details anzeigen aus.
Die Seite "Tabellendetails" wird geöffnet.
-
-
Klicken Sie auf Zeile einfügen.
-
Wählen Sie im Fenster "Datensatz einfügen" die Option Erweiterte JSON-Eingabe für Eingabemodus aus.
-
Fügen Sie die Datensatzdefinition im JSON-Format ein, oder laden Sie sie hoch.
-
Klicken Sie auf Zeile einfügen.
Der Datensatz wird in die Tabelle eingefügt.
Um die Hilfe für die aktuelle Seite anzuzeigen, klicken Sie oben auf der Seite auf den Hilfelink.
Daten mit SQL-Befehl einfügen
Mit der INSERT-Anweisung wird eine neue Zeile erstellt und zu einer angegebenen Tabelle hinzugefügt.
Optionale Spalten können nach dem Tabellennamen angegeben werden. Diese Liste enthält die Spaltennamen für eine Teilmenge der Tabellenspalten. Die Teilmenge muss alle Primärschlüsselspalten enthalten. Wenn keine Spaltenliste vorhanden ist, ist die Standardspaltenliste die Liste, die alle Spalten der Tabelle in der Reihenfolge enthält, in der sie in der CREATE TABLE-Anweisung angegeben werden.
Die Spalten in der Spaltenliste entsprechen Eins-zu-Eins den Ausdrücken (oder DEFAULT-Schlüsselwörtern), die nach der VALUES-Klausel aufgeführt werden (ein Fehler wird ausgelöst, wenn die Anzahl der Ausdrücke/DEFAULTs nicht mit der Anzahl der Spalten übereinstimmt). Diese Ausdrücke/DEFAULTs berechnen den Wert für die zugehörige Spalte in der neuen Zeile. Ein Fehler wird ausgelöst, wenn ein Ausdruck mehr als ein Element zurückgibt. Wenn ein Ausdruck kein Ergebnis zurückgibt, wird NULL als Ergebnis dieses Ausdrucks verwendet. Wenn anstelle eines Ausdrucks das Schlüsselwort DEFAULT in der Liste VALUES angezeigt wird, wird der Standardwert der zugeordneten Spalte als Wert dieser Spalte in der neuen Zeile verwendet. Der Standardwert wird auch für fehlende Spalten verwendet, wenn die Anzahl der Spalten in der Spaltenliste kleiner als die Gesamtanzahl der Spalten in der Tabelle ist.
Beispiel 1: Einfügen einer Zeile in die Tabelle BaggageInfo mit allen Spaltenwerten:
INSERT INTO BaggageInfo VALUES(
1762392196147,
"Birgit Naquin",
"M",
"165-742-5715",
"QD1L0T",
[ {
"id" : "7903989918469",
"tagNum" : "17657806240229",
"routing" : "JFK/MAD",
"lastActionCode" : "OFFLOAD",
"lastActionDesc" : "OFFLOAD",
"lastSeenStation" : "MAD",
"flightLegs" : [ {
"flightNo" : "BM495",
"flightDate" : "2019-03-07T07:00:00Z",
"fltRouteSrc" : "JFK",
"fltRouteDest" : "MAD",
"estimatedArrival" : "2019-03-07T14:00:00Z",
"actions" : [ {
"actionAt" : "MAD",
"actionCode" : "Offload to Carousel at MAD",
"actionTime" : "2019-03-07T13:54:00Z"
}, {
"actionAt" : "JFK",
"actionCode" : "ONLOAD to MAD",
"actionTime" : "2019-03-07T07:00:00Z"
}, {
"actionAt" : "JFK",
"actionCode" : "BagTag Scan at JFK",
"actionTime" : "2019-03-07T06:53:00Z"
}, {
"actionAt" : "JFK",
"actionCode" : "Checkin at JFK",
"actionTime" : "2019-03-07T05:03:00Z"
} ]
} ],
"lastSeenTimeGmt" : "2019-03-07T13:51:00Z",
"bagArrivalDate" : "2019-03-07T13:51:00Z"
} ]
)
Beispiel 2: Einige Daten werden übersprungen, während eine INSERT-Anweisung ausgeführt wird, indem die DEFAULT-Klausel angegeben wird.
Sie können die Daten einiger Spalten überspringen, indem Sie "DEFAULT" angeben.
INSERT INTO BaggageInfo VALUES(
1762397286805,
"Bonnie Williams",
DEFAULT,
DEFAULT,
"CZ1O5I",
[ {
"id" : "79039899129693",
"tagNum" : "17657806216554",
"routing" : "SFO/ORD/FRA",
"lastActionCode" : "OFFLOAD",
"lastActionDesc" : "OFFLOAD",
"lastSeenStation" : "FRA",
"flightLegs" : [ {
"flightNo" : "BM572",
"flightDate" : "2019-03-02T05:00:00Z",
"fltRouteSrc" : "SFO",
"fltRouteDest" : "ORD",
"estimatedArrival" : "2019-03-02T09:00:00Z",
"actions" : [ {
"actionAt" : "SFO",
"actionCode" : "ONLOAD to ORD",
"actionTime" : "2019-03-02T05:24:00Z"
}, {
"actionAt" : "SFO",
"actionCode" : "BagTag Scan at SFO",
"actionTime" : "2019-03-02T04:52:00Z"
}, {
"actionAt" : "SFO",
"actionCode" : "Checkin at SFO",
"actionTime" : "2019-03-02T03:28:00Z"
} ]
}, {
"flightNo" : "BM582",
"flightDate" : "2019-03-02T05:24:00Z",
"fltRouteSrc" : "ORD",
"fltRouteDest" : "FRA",
"estimatedArrival" : "2019-03-02T13:24:00Z",
"actions" : [ {
"actionAt" : "FRA",
"actionCode" : "Offload to Carousel at FRA",
"actionTime" : "2019-03-02T13:20:00Z"
}, {
"actionAt" : "ORD",
"actionCode" : "ONLOAD to FRA",
"actionTime" : "2019-03-02T12:54:00Z"
}, {
"actionAt" : "ORD",
"actionCode" : "OFFLOAD from ORD",
"actionTime" : "2019-03-02T12:30:00Z"
} ]
} ],
"lastSeenTimeGmt" : "2019-03-02T13:18:00Z",
"bagArrivalDate" : "2019-03-02T13:18:00Z"
} ]
)
Beispiel 3: Spaltennamen angeben und Spalten in der INSERT-Anweisung überspringen
Wenn nur Daten für einige Spalten einer Tabelle vorhanden sind, können Sie den Namen der Spalten in der INSERT-Klausel angeben und dann die entsprechenden Werte in der "VALUES"-Klausel angeben.
INSERT INTO BaggageInfo(ticketNo, fullName,confNo,bagInfo) VALUES(
1762355349471,
"Bryant Weber",
"LI7N1W",
[ {
"id" : "79039899149056",
"tagNum" : "17657806234185",
"routing" : "MEL/LAX/MIA",
"lastActionCode" : "OFFLOAD",
"lastActionDesc" : "OFFLOAD",
"lastSeenStation" : "MIA",
"flightLegs" : [ {
"flightNo" : "BM114",
"flightDate" : "2019-03-01T12:00:00Z",
"fltRouteSrc" : "MEL",
"fltRouteDest" : "LAX",
"estimatedArrival" : "2019-03-02T02:00:00Z",
"actions" : [ {
"actionAt" : "MEL",
"actionCode" : "ONLOAD to LAX",
"actionTime" : "2019-03-01T12:20:00Z"
}, {
"actionAt" : "MEL",
"actionCode" : "BagTag Scan at MEL",
"actionTime" : "2019-03-01T11:52:00Z"
}, {
"actionAt" : "MEL",
"actionCode" : "Checkin at MEL",
"actionTime" : "2019-03-01T11:43:00Z"
} ]
}, {
"flightNo" : "BM866",
"flightDate" : "2019-03-01T12:20:00Z",
"fltRouteSrc" : "LAX",
"fltRouteDest" : "MIA",
"estimatedArrival" : "2019-03-02T16:21:00Z",
"actions" : [ {
"actionAt" : "MIA",
"actionCode" : "Offload to Carousel at MIA",
"actionTime" : "2019-03-02T16:18:00Z"
}, {
"actionAt" : "LAX",
"actionCode" : "ONLOAD to MIA",
"actionTime" : "2019-03-02T16:12:00Z"
}, {
"actionAt" : "LAX",
"actionCode" : "OFFLOAD from LAX",
"actionTime" : "2019-03-02T16:02:00Z"
} ]
} ],
"lastSeenTimeGmt" : "2019-03-02T16:09:00Z",
"bagArrivalDate" : "2019-03-02T16:09:00Z"
} ]
)
Beispiel 4: Einfügen einer Zeile in die Tabelle stream_acct mit allen Spaltenwerten:
INSERT INTO stream_acct VALUES(
1,
"AP",
"2023-10-18",
{
"firstName": "Adam",
"lastName": "Phillips",
"country": "Germany",
"contentStreamed": [{
"showName": "At the Ranch",
"showId": 26,
"showtype": "tvseries",
"genres": ["action", "crime", "spanish"],
"numSeasons": 4,
"seriesInfo": [{
"seasonNum": 1,
"numEpisodes": 2,
"episodes": [{
"episodeID": 20,
"episodeName": "Season 1 episode 1",
"lengthMin": 85,
"minWatched": 85,
"date": "2022-04-18"
},
{
"episodeID": 30,
"lengthMin": 60,
"episodeName": "Season 1 episode 2",
"minWatched": 60,
"date": "2022 - 04 - 18 "
}]
},
{
"seasonNum": 2,
"numEpisodes": 2,
"episodes": [{
"episodeID": 40,
"episodeName": "Season 2 episode 1",
"lengthMin": 50,
"minWatched": 50,
"date": "2022-04-25"
},
{
"episodeID": 50,
"episodeName": "Season 2 episode 2",
"lengthMin": 45,
"minWatched": 30,
"date": "2022-04-27"
}]
},
{
"seasonNum": 3,
"numEpisodes": 2,
"episodes": [{
"episodeID": 60,
"episodeName": "Season 3 episode 1",
"lengthMin": 50,
"minWatched": 50,
"date": "2022-04-25"
},
{
"episodeID": 70,
"episodeName": "Season 3 episode 2",
"lengthMin": 45,
"minWatched": 30,
"date": "2022 - 04 - 27 "
}]
}]
},
{
"showName": "Bienvenu",
"showId": 15,
"showtype": "tvseries",
"genres": ["comedy", "french"],
"numSeasons": 2,
"seriesInfo": [{
"seasonNum": 1,
"numEpisodes": 2,
"episodes": [{
"episodeID": 20,
"episodeName": "Bonjour",
"lengthMin": 45,
"minWatched": 45,
"date": "2022-03-07"
},
{
"episodeID": 30,
"episodeName": "Merci",
"lengthMin": 42,
"minWatched": 42,
"date": "2022-03-08"
}]
}]
}]
});
Upload von Tabellenzeilen
Mit der Schaltfläche Daten hochladen auf der Seite mit den Tabellendetails können Sie Daten aus einer lokalen Datei per Bulkvorgang über den Browser in die Tabelle hochladen.
Das Feature Hochladen ist für das Laden von weniger als ein paar tausend Zeilen vorgesehen. Diese Funktion eignet sich hervorragend für die Durchführung eines Proof of Concept (POC) oder die Durchführung grundlegender Tests des Service. Es ist eine bequeme Möglichkeit, eine kleine Tabelle zu füllen. Wenn Sie Zehntausende von Zeilen schreiben möchten, sollten Sie aus Performancegründen den Oracle NoSQL Database-Migrator besser verwenden oder Ihr eigenes Programm mit einem der NoSQL-SDKs schreiben. Wenn Sie jedoch schnell ein paar hundert oder ein paar tausend Zeilen einfügen möchten, ist diese Upload-Methode ein schneller Ansatz.
Die hochzuladende Datei muss eine Reihe von JSON-Objekten enthalten. Die Objekte können als durch Komma getrennte Elemente eines einzelnen Arrays oder als Folge einfacher Objekte ausgedrückt werden, die durch geschweifte Klammern begrenzt sind, ohne syntaktische Trennzeichen zwischen ihnen. Der Inhalt jedes Objekts muss eine korrekt formatierte JSON aufweisen und dem Schema der Tabelle entsprechen, in die sie hochgeladen werden.
Beispiel: Eine Tabelle wird mit der folgenden DDL-Anweisung erstellt
CREATE TABLE Simple ( id integer, val string, PRIMARY KEY ( id ) )
Das folgende Beispiel veranschaulicht die Verwendung des Arrayformats für den Dateiinhalt.
[
{
"id": 0,
"val": "0"
},
{
"id": 1,
"val": "2"
}, ...
]
Das folgende Beispiel veranschaulicht die Verwendung einfacher Objekte für den Dateiinhalt.
{
"id": 0,
"val": "0"
}
{
"id": 1,
"val": "2"
}, ...
-
Wenn für das Schema der Tabelle kein Spaltenwert erforderlich ist, wird möglicherweise die entsprechende JSON-Eigenschaft ausgelassen.
-
Wenn ein Spaltenwert IMMER GENERIERT ist, muss die entsprechende JSON-Eigenschaft ausgelassen werden.
-
Wenn ein JSON-Objekt Eigenschaften mit Namen enthält, die keinen Spaltennamen entsprechen, werden diese Eigenschaften ignoriert.
Um das Uploadfeature zu verwenden, klicken Sie auf die Schaltfläche Daten hochladen, und wählen Sie die hochzuladende Datei aus. Der Upload beginnt sofort und der Fortschritt wird auf der Seite angezeigt. Nach erfolgreichem Abschluss wird die Gesamtanzahl der eingefügten Zeilen angezeigt. Sie können den Upload unterbrechen, indem Sie auf die Schaltfläche Upload stoppen klicken. Die Anzahl der Zeilen, die erfolgreich in der Datenbank festgeschrieben wurden, wird angezeigt.
Wenn ein Fehler in der Eingabedatei erkannt wird, wird der Upload gestoppt, und eine Fehlermeldung mit einer ungefähren Zeilennummer wird angezeigt. Eingabefehler können durch falsche JSON-Syntax oder Schema-Nichtkonformität verursacht werden. Fehler können auch bei Anforderungen für den Service auftreten. Solche Fehler stoppen auch das Hochladen und zeigen eine Meldung an.
Beispieltabelle mit folgendem Schema:
CREATE TABLE IF NOT EXISTS NDCStable (id INTEGER, name STRING, email STRING, age INTEGER, income DOUBLE, PRIMARY KEY(SHARD(id)))
In der folgenden Tabelle sind einige häufige Fehler in der Eingabedatei und die entsprechende Fehlerbehandlung beim Hochladen von Daten aufgeführt.
Fehlerbehandlung beim Hochladen
Fall 1: Nicht-JSON-Text in einer der Zeilen
Problem in der Eingabedatei:
Eine Zeile enthält Nicht-JSON-Text, wie missed a line, zwischen zwei gültigen JSON-Datensätzen.
{"id":1,"name":"Jane Smith","email":"iamjane@somemail.co.us","age":30,"income":30000.0}
missed a line
{"id":2,"name":"Adam Smith","email":"adam.smith@mymail.com","age":25,"income":25000.0}
Fehlerhandling:
Das System ignoriert den Text und setzt den Upload fort. Eine Erfolgsmeldung wird angezeigt, nachdem alle Zeilen erfolgreich in die Tabelle geladen wurden.
In diesem Beispiel wird der Text missed a line übersprungen, und die beiden Zeilen mit der ID 1 und 2 wurden erfolgreich geladen.
Fall 2: Doppelte Primärschlüsseleinträge
Problem in der Eingabedatei:
Die Eingabedatei enthält mehrere Zeilen mit demselben Primärschlüsselwert.
{"id":2,"name":"Adam Smith","email":"adam.smith@mymail.com","age":25,"income":25000.0}
{"id":2,"name":"Jennifer Smith","email":"jenny1_smith@mymail.com","age":35,"income":35000.0}
{"id":5,"name":"Noelle Smith","email":"noel21@somemail.co.us","age":40,"income":40000.0}
Fehlerhandling:
Das System überspringt den duplizierten Zeileneintrag und setzt den Upload fort. Nach dem erfolgreichen Laden aller Zeilen wird eine Erfolgsmeldung angezeigt.
In diesem Beispiel wird die erste Zeile mit der ID 2 in die Tabelle geladen. Die zweite Zeile mit dem doppelten ID-Wert 2 wird übersprungen. Alle anderen Zeilen wurden erfolgreich hochgeladen.
Fall 3: Falsches JSON-Format
Problem in der Eingabedatei:
Die Eingabedatei enthält Zeilen mit einem falschen JSON-Format. Beispiel: In einer Zeile fehlt eine schließende geschweifte Klammer oder ein Komma zwischen zwei JSON-Feldern.
{"id":7,"name":"Tom Smith","email":"reachtom12@mymail.com","age":65,"income":65000.0}
{"id":8,"name":"Jack Smith","email":"iamjacksmi@somemail.co.us","age":60,"income":30000.0
{"id":9,"fame":"Jane Smith""email":"iamjanesmi@somemail.co.us","age":56,"income":35000.0}
Fehlerhandling:
Das Hochladen wird gestoppt, wenn die fehlerhafte Zeile erkannt wird. Es wird eine Fehlermeldung angezeigt, die ein unerwartetes Ende der Datei und die ungefähre Zeilennummer angibt.
In diesem Beispiel gibt es zwei Fehler im JSON-Format. In der Zeile mit ID 8 fehlt eine schließende geschweifte Klammer, und ID 9 fehlt ein Komma zwischen zwei JSON-Feldern. Beide Einträge entsprechen nicht dem JSON-Datentypformat, was zu einem Uploadfehler führt. Nur die Zeile mit der ID 7 wurde erfolgreich in die Tabelle geladen.
Hinweis: Der Uploadvorgang wird gestoppt, wenn die erste Fehlerinstanz oder Inkonsistenz in der Eingabedatei ermittelt wird.
Fall 4: Primärschlüssel fehlt in einer Zeile
Problem in der Eingabedatei:
Eine Zeile in der Eingabedatei enthält nicht das Primärschlüsselfeld.
{"id":2,"name":"Adam Smith","email":"adam.smith@mymail.com","age":25,"income":25000.0}
{"name":"Jennifer Smith","email":"jenny1_smith@mymail.com","age":35,"income":35000.0}
{"id":5,"name":"Noelle Smith","email":"noel21@somemail.co.us","age":40,"income":40000.0}
Fehlerhandling:
Das Hochladen wird gestoppt, wenn die fehlerhafte Zeile erkannt wird. Es wird eine Fehlermeldung angezeigt, dass der Primärschlüssel einen Wert haben muss.
In diesem Beispiel enthält die zweite Zeile nicht das Primärschlüsselfeld, was zu einem Fehler führt. Nur die Zeile mit der ID 2 wurde erfolgreich in die Tabelle geladen.
Fall 5: Nichtkonformität des Schemas - fehlende, falsche oder zusätzliche Felder
Problem in der Eingabedatei:
Die Eingabedatei enthält Felder, die fehlen, falsch benannt sind oder zusätzliche Felder, die nicht dem Tabellenschema entsprechen.
{"id":6,"name":"Yera Smith","email":"ys1982@mymail.com","age":55,"income":55000.0}
{"id":7,"fname":"Tom Smith","email":"reachtom12@mymail.com","age":65,"income":65000.0}
{"id":8,"email":"iamjacksmi@somemail.co.us","age":60,"income":30000.0}
Fehlerhandling:
Wenn andere Felder als der Primärschlüssel in der Eingabedatei fehlen, werden die Daten erfolgreich hochgeladen. Es wird eine Meldung über die erfolgreiche Ausführung angezeigt. Die fehlenden Felder werden mit einem null-Wert aufgefüllt.
In diesem Beispiel wird der Feldname in der Zeile mit ID 7 falsch geschrieben, und das Feld name fehlt in der Zeile mit ID 8. In beiden Fällen werden alle Zeilen erfolgreich in die Tabelle geladen. Die name-Felder werden mit einem null-Wert aktualisiert.
Wenn der Upload aus irgendeinem Grund in der Mitte gestoppt wird, können Sie einen der folgenden Schritte ausführen:
-
Wenn keine Spalten mit generierten Schlüsselwerten vorhanden sind (d.h. wenn die Schlüssel vollständig von der JSON-Datei diktiert werden), können Sie einfach mit derselben Datei neu beginnen. Die bereits geschriebenen Zeilen werden erneut geschrieben.
-
Wenn generierte Schlüsselwerte vorhanden sind, würde beim Überschreiben neue Datensätze geschrieben, anstatt vorhandene Datensätze zu überschreiben. Der einfachste Pfad besteht darin, die Tabelle zu löschen und erneut zu erstellen.
-
Alternativ können Sie alle Datensätze aus der Tabelle entfernen, indem Sie die Anweisung
DELETE FROM tablenameim Formular Daten explorieren ausführen.
Wenn der bereitgestellte Schreibgrenzwert während des Uploads überschritten wird, wird eine vorübergehende Meldung angezeigt, die dies anzeigt, und das Hochladen wird verlangsamt, um zu vermeiden, dass der Grenzwert erneut überschritten wird.