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.
- Simple Input Mode: Mit diesem Modus können Sie die Werte für die neuen Zeilen deklarativ angeben.
- Erweiterter JSON-Inputmodus: Mit diesem Modus können Sie die Werte für die neuen Zeilen im JSON-Format angeben.
- Mit der INSERT-Anweisung können Sie einen Datensatz 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 im Textfeld für die SQL-Anweisung die INSERT-Anweisung hinzu, und führen Sie den Befehl aus.
- Sie können die Daten auch per Bulkupload aus einer lokalen Datei in die Tabelle über den Browser hochladen.
Hinweis: Wenn die Tabelle eine globale aktive Tabelle ist, werden beim Hinzufügen von Daten in einer Region auch die Daten zu allen regionalen Tabellenreplikaten hinzugefügt.
Daten in Tabellen einfügen: Einfache Eingabe
Informationen zum Einfügen von Daten in Oracle NoSQL Database Cloud Service-Tabellen mit dem Einführungsmodus "Einfache Eingabe".
Daten in Tabellen einfügen: Erweiterter JSON-Inputmodus
Erfahren Sie, wie Sie Daten mit dem erweiterten JSON-Inputmodus in Oracle NoSQL Database Cloud Service-Tabellen einfügen.
Daten mit SQL-Befehl einfügen
Mit der INSERT-Anweisung wird eine neue Zeile erstellt und 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 Spalten der Tabelle. Die Teilmenge muss alle Primärschlüsselspalten enthalten. Wenn keine Spaltenliste vorhanden ist, ist die Standardspaltenliste die Liste, die alle Spalten der Tabelle enthält. Sie werden in der Reihenfolge in der Anweisung CREATE TABLE angegeben.
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 der Anzahl der Spalten entspricht). 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.
BaggageInfo
einfügen, die alle Spaltenwerte enthalten: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: Überspringen Sie einige Daten während einer INSERT-Anweisung, indem Sie die DEFAULT-Klausel 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.
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"
} ]
)
stream_acct
einfügen, die alle Spaltenwerte enthalten: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 "Tabellendetails" können Sie Daten aus einer lokalen Datei über den Browser global in die Tabelle hochladen.
Das Feature Hochladen dient zum Laden von weniger als ein paar tausend Zeilen. Diese Funktion eignet sich hervorragend für die Durchführung eines Proof of Concept (POC) oder für grundlegende 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 verwenden oder ein 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 Uploadmethode ein schneller Ansatz.
Die hochzuladende Datei muss eine Reihe von JSON-Objekten enthalten. Die Objekte können als kommagetrennte Elemente eines einzelnen Arrays oder als Folge einfacher Objekte ausgedrückt werden, die durch geschweifte Klammern begrenzt sind, ohne dass syntaktische Trennzeichen dazwischen liegen. Der Inhalt jedes Objekts muss JSON-Format aufweisen und dem Schema der Tabelle entsprechen, in die sie hochgeladen werden.
CREATE TABLE Simple ( id integer, val string, PRIMARY KEY ( id ) )
[
{
"id": 0,
"val": "0"
},
{
"id": 1,
"val": "2"
}, ...
]
{
"id": 0,
"val": "0"
}
{
"id": 1,
"val": "2"
}, ...
- Wenn für das Tabellenschema kein Spaltenwert erforderlich ist, wird die entsprechende JSON-Eigenschaft möglicherweise ausgelassen.
- Wenn ein Spaltenwert IMMER GENERIERT ist, muss die entsprechende JSON-Eigenschaft ausgelassen werden.
- Wenn ein JSON-Objekt Eigenschaften mit Namen enthält, die mit keinem Spaltennamen übereinstimmen, 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 Hochladen 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 Schemaunstimmigkeit verursacht werden. Fehler können auch bei Anforderungen für den Service auftreten. Solche Fehler stoppen auch das Hochladen und zeigen eine Nachricht an.
CREATE TABLE IF NOT EXISTS NDCStable (id INTEGER, name STRING, email STRING, age INTEGER, income DOUBLE, PRIMARY KEY(SHARD(id)))
Tabelle - Fehlerbehandlung während des Uploads
Probleme in der Eingabedatei | Fehlerhandling |
---|---|
Ein Nicht-JSON-Text in einer der Zeilen
|
Der Text wird ignoriert und der Upload fortgesetzt. Nach dem erfolgreichen Laden aller Zeilen in die Tabelle wird eine Erfolgsmeldung angezeigt. In diesem Beispiel wird der Text "fehlende Zeile" übersprungen und die beiden Zeilen mit ID 1 und 2 erfolgreich geladen. |
Primärschlüsseleinträge duplizieren
|
Der doppelte Zeileneintrag wird übersprungen und der Upload fortgesetzt. Nach dem erfolgreichen Laden aller Zeilen wird eine Erfolgsmeldung angezeigt. In diesem Beispiel wird die erste Zeile mit ID 2 in die Tabelle geladen. Die zweite Zeile mit dem duplizierten ID-Wert 2 wird übersprungen. Alle anderen Zeilen wurden erfolgreich hochgeladen. |
Ungültiges JSON-Format
|
Der Upload wird gestoppt, wenn die fehlerhafte Zeile erkannt wird. Es wird eine Fehlermeldung mit einem unerwarteten Ende der Datei und der ungefähren Zeilennummer angezeigt. In diesem Beispiel gibt es zwei JSON-Formatfehler. In der Zeile mit ID 8 fehlt eine schließende geschweifte Klammer, und in 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 ID 7 wurde erfolgreich in die Tabelle geladen. Hinweis: Der Uploadvorgang wird gestoppt, wenn die erste Instanz eines Fehlers oder einer Inkonsistenz in der Eingabedatei ermittelt wird. |
Primärschlüssel fehlt in einer Zeile
|
Der Upload wird gestoppt, wenn die fehlerhafte Zeile erkannt wird. Es wird eine Fehlermeldung angezeigt, die angibt, dass der Primärschlüssel einen Wert aufweisen muss. In diesem Beispiel enthält die zweite Zeile nicht das Primärschlüsselfeld, was zu einem Fehler führt. Nur die Zeile mit ID 2 wurde erfolgreich in die Tabelle geladen. |
Nichtkonformität des Schemas - fehlende, falsche oder zusätzliche Felder
|
Wenn in der Eingabedatei andere Felder als der Primärschlüssel fehlen, werden die Daten erfolgreich hochgeladen. Es wird eine Fehlermeldung 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 |
- Wenn keine Spalten mit generierten Schlüsselwerten vorhanden sind (das heißt, 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 Schlüsselwerte generiert werden, werden beim Überschreiben neue Datensätze geschrieben, anstatt vorhandene Datensätze zu überschreiben. Der einfachste Pfad wäre, 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 tablename
im Formular Daten explorieren ausführen.
Wenn der bereitgestellte Schreibgrenzwert während des Uploadprozesses überschritten wird, wird eine transiente Meldung angezeigt, die dies angibt, und das Hochladen wird verlangsamt, um eine erneute Überschreitung des Limits zu vermeiden.
Verwenden der Konsole zum Einfügen von Tabellendaten