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.

Mit der Konsole NoSQL können Sie neue Zeilen in die Oracle NoSQL Database Cloud Service-Tabellen in den folgenden Modi einfügen:
  1. Simple Input Mode: Mit diesem Modus können Sie die Werte für die neuen Zeilen deklarativ angeben.
  2. Erweiterter JSON-Inputmodus: Mit diesem Modus können Sie die Werte für die neuen Zeilen im JSON-Format angeben.
  3. 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.
  4. 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".

To insert data into tables:
  1. Öffnen Sie die NoSQL-Konsole über die Infrastructure-Konsole. Siehe Über die Infrastructure-Konsole auf den Service zugreifen.
  2. Die NoSQL-Konsole enthält alle Tabellen im Mandanten. So zeigen Sie die Details der Tabelle an:
    • Klicken Sie auf den Tabellennamen oder
    • Klicken Sie auf das Aktionsmenü, das dem Namen der Tabelle entspricht, und wählen Sie Details anzeigen aus.
    Die Seite "Tabelle" wird geöffnet.
  3. Klicken Sie auf Zeile einfügen.
  4. Wählen Sie im Fenster " Zeile einfügen" die Option Einfache Eingabe für Eingabemodus aus.
  5. 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", können Sie die Daten hochladen.

    Hinweis:

    Die Eingabe eines Wertes ist für alle Spalten obligatorisch, die nicht auf Null gesetzt werden können.
  6. 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-Inputmodus

Erfahren Sie, wie Sie Daten mit dem erweiterten JSON-Inputmodus in Oracle NoSQL Database Cloud Service-Tabellen einfügen.

To insert data into tables:
  1. Öffnen Sie die NoSQL-Konsole über die Infrastructure-Konsole. Siehe Über die Infrastructure-Konsole auf den Service zugreifen.
  2. Die NoSQL-Konsole enthält alle Tabellen im Mandanten. So zeigen Sie die Details der Tabelle an:
    • Klicken Sie auf den Tabellennamen oder
    • Klicken Sie auf das Aktionsmenü, das dem Namen der Tabelle entspricht, und wählen Sie Details anzeigen aus.
    Die Seite "Tabelle" wird geöffnet.
  3. Klicken Sie auf Zeile einfügen.
  4. Wählen Sie im Fenster "Datensatz einfügen" die Option Advanced JSON Input für Entry Mode.
  5. Einfügen oder Hochladen der Datensatzdefinition im JSON-Format.
  6. 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 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.

Beispiel 1: Zeilen in die Tabelle 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.

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: Zeilen in die Tabelle 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.

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 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.

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 Datenupload aufgeführt.

Tabelle - Fehlerbehandlung während des Uploads

Probleme in der Eingabedatei Fehlerhandling
Ein Nicht-JSON-Text in einer der Zeilen
{"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}

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
{"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}

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
{"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}

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
{"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}

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
{"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}

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 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 (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.