Uso de la Consola para Insertar Datos de Tabla

Aprenda a insertar datos en tablas de Oracle NoSQL Database Cloud Service desde la consola NoSQL.

La consola NoSQL permite insertar nuevas filas en las tablas de Oracle NoSQL Database Cloud Service en los siguientes modos:
  1. Modo de entrada simple: puede utilizar este modo para proporcionar los valores para las nuevas filas de forma declarativa.
  2. Modo de entrada JSON avanzada: puede utilizar este modo para proporcionar los valores para las nuevas filas en formato JSON.
  3. Puede utilizar la sentencia INSERT para agregar una fila. En NoSQL>>Tablas, seleccione la tabla en la que desea agregar una fila. En Explorar datos, agregue la sentencia INSERT en el cuadro de texto proporcionado para la sentencia SQL y ejecute el comando.
  4. También puede cargar de forma masiva los datos de un archivo local en la tabla, mediante el explorador.

Nota: Si la tabla es una tabla activa global, la adición de datos en una región también agrega los datos a todas las réplicas de tablas regionales.

Inserción de datos en tablas: modo de entrada simple

Aprenda a insertar datos en tablas de Oracle NoSQL Database Cloud Service mediante el modo de inserción Entrada simple.

Para insertar datos en tablas:
  1. Acceda a la consola NoSQL desde la consola de Infrastructure . Consulte Cómo acceder al servicio desde la consola de Infrastructure.
  2. La consola NoSQL muestra todas las tablas en el arrendamiento. Para ver los detalles de la tabla, realice una de las acciones siguientes:
    • Haga clic en el nombre de la tabla.
    • Haga clic en el menú de acción correspondiente al nombre de la tabla y seleccione Ver detalles.
    Se abrirá la página Detalles de la tabla.
  3. Haga clic en Insertar fila.
  4. En la ventana Insert Row, seleccione Simple Input para Entry Mode.
  5. Se muestran todas las columnas de la tabla. Introduzca los datos de las columnas de la tabla. Para algunos tipos de columna, como Binario, debe cargar los datos.

    Note:

    Introducir un valor es obligatorio para todas las columnas no nulas de la tabla.
  6. Haga clic en Insertar fila.
    El registro se inserta en la tabla.
Para ver la ayuda de la página actual, haga clic en el enlace de ayuda situado en la parte superior de la página.

Inserción de datos en tablas: modo de entrada JSON avanzada

Aprenda a insertar datos en tablas de Oracle NoSQL Database Cloud Service utilizando el modo de entrada JSON avanzada.

Para insertar datos en tablas:
  1. Acceda a la consola NoSQL desde la consola de Infrastructure . Consulte Cómo acceder al servicio desde la consola de Infrastructure.
  2. La consola NoSQL muestra todas las tablas en el arrendamiento. Para ver los detalles de la tabla, realice una de las acciones siguientes:
    • Haga clic en el nombre de la tabla.
    • Haga clic en el menú de acción correspondiente al nombre de la tabla y seleccione Ver detalles.
    Se abrirá la página Detalles de la tabla.
  3. Haga clic en Insertar fila.
  4. En la ventana Insert Record, seleccione Advanced JSON Input para el Entry Mode.
  5. Pega o carga la definición de registro en formato JSON.
  6. Haga clic en Insertar fila.
    El registro se inserta en la tabla.
Para ver la ayuda de la página actual, haga clic en el enlace de ayuda situado en la parte superior de la página.

Uso del comando SQL para insertar datos

La sentencia INSERT se utiliza para crear una nueva fila y agregarla a una tabla especificada.

Las columnas opcionales se pueden especificar después del nombre de la tabla. Esta lista contiene los nombres de columna para un subjuego de las columnas de la tabla. El subjuego debe incluir todas las columnas de clave primaria. Si no hay ninguna lista de columnas, la lista de columnas por defecto es la que contiene todas las columnas de la tabla, en el orden, se especifican en la sentencia CREATE TABLE.

Las columnas de la lista de columnas corresponden una a una a las expresiones (o palabras clave DEFAULT) mostradas después de la cláusula VALUES (se emite un error si el número de expresiones/DEFAULTs no es el mismo que el número de columnas). Estas expresiones/DEFAULT calculan el valor de la columna asociada en la nueva fila. Se produce un error si una expresión devuelve más de un elemento. Si una expresión no devuelve ningún resultado, se utiliza NULL como resultado de esa expresión. Si en lugar de una expresión, la palabra clave DEFAULT aparece en la lista VALUES, el valor por defecto de la columna asociada se utiliza como valor de esa columna en la nueva fila. El valor por defecto también se utiliza para las columnas que faltan cuando el número de columnas de la lista de columnas es menor que el número total de columnas de la tabla.

Ejemplo 1: Inserción de una fila en la tabla BaggageInfo que proporciona todos los valores de columna:
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"
  } ]
)

Ejemplo 2: omisión de algunos datos mientras se realiza una sentencia INSERT especificando la cláusula DEFAULT.

Puede omitir los datos de algunas columnas especificando "DEFAULT".
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"
  } ]
)

Ejemplo 3: especificación de nombres de columna y omisión de columnas en la sentencia insert.

Si sólo tiene datos para algunas columnas de una tabla, puede especificar el nombre de las columnas en la cláusula INSERT y, a continuación, especificar los valores correspondientes en la cláusula "VALUES".
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"
  } ]
)
Ejemplo 4: Inserción de una fila en la tabla stream_acct que proporciona todos los valores de columna:
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"
         }]
      }]
   }]
});

Carga de filas de tabla

El botón Cargar Datos de la página de detalles Tabla permite la carga masiva de datos de un archivo local en la tabla, mediante el explorador.

La función Cargar está diseñada para cargar menos de unos pocos miles de filas. Esta característica es ideal para realizar una prueba de concepto (POC) o realizar pruebas básicas del servicio. Es una forma conveniente de rellenar una tabla pequeña. Si desea escribir decenas de miles de filas, por motivos de rendimiento sería mejor utilizar Oracle NoSQL Database Migrator o escribir su propio programa con uno de los SDK de NoSQL. Sin embargo, si desea insertar rápidamente unos pocos cientos o unos pocos miles de filas, este método de carga es un enfoque rápido.

El archivo que se va a cargar debe contener una serie de objetos JSON. Los objetos se pueden expresar como elementos separados por comas de una sola matriz o como una secuencia de objetos simples delimitados por llaves, sin delimitadores sintácticos entre ellos. El contenido de cada objeto debe tener el formato JSON correcto y debe ajustarse al esquema de la tabla en la que se cargarán.

Ejemplo: se crea una tabla con la siguiente sentencia DDL
CREATE TABLE Simple ( id integer, val string, PRIMARY KEY ( id ) )
El siguiente ejemplo ilustra el uso del formato de matriz para el contenido del archivo.

[
  {
    "id": 0,
    "val": "0"
  },
  {
    "id": 1,
    "val": "2"
  }, ...
]
El siguiente ejemplo ilustra el uso de objetos simples para el contenido del archivo.

{
  "id": 0,
  "val": "0"
}
{
  "id": 1,
  "val": "2"
}, ...
  • Si el esquema de la tabla no necesita un valor de columna, se puede dejar fuera la propiedad JSON correspondiente.
  • Si un valor de columna es GENERATED ALWAYS, se debe excluir la propiedad JSON correspondiente.
  • Si un objeto JSON contiene propiedades con nombres que no coinciden con ningún nombre de columna, estas propiedades se ignoran.

Para utilizar la función de carga, haga clic en el botón Cargar datos y seleccione el archivo que desea cargar. La carga comienza inmediatamente y el progreso se mostrará en la página. Al finalizar correctamente, se mostrará el número total de filas insertadas. Puede interrumpir la carga haciendo clic en el botón Stop Uploading (Detener carga). Se mostrará el número de filas confirmadas correctamente en la base de datos.

Si se detecta un error en el archivo de entrada, la carga se detendrá y se mostrará un mensaje de error con un número de línea aproximado. Los errores de entrada pueden deberse a una sintaxis JSON incorrecta o a la no conformidad del esquema. También se pueden producir errores durante las solicitudes para el servicio. Estos errores también paran la carga y muestran un mensaje.

Considere una tabla de ejemplo con el siguiente esquema:
CREATE TABLE IF NOT EXISTS NDCStable (id INTEGER, name STRING, email STRING, age INTEGER, income DOUBLE, PRIMARY KEY(SHARD(id)))
En la siguiente tabla se muestran algunos errores comunes en el archivo de entrada y el manejo de errores correspondiente durante la carga de datos.

Tabla - Manejo de errores durante la carga

Problemas en el archivo de entrada Gestión de Errores
Texto no JSON en una de las filas
{"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}

El sistema ignora el texto y continúa la carga. Aparece un mensaje que indica que todas las filas se han cargado correctamente en la tabla.

En este ejemplo, se omite el texto "missed a line" y las dos filas con los ID 1 y 2 se cargan correctamente.

Entradas de clave primaria duplicadas
{"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}

El sistema omite la entrada de fila duplicada y continúa la carga. Se muestra un mensaje de éxito después de cargar correctamente todas las filas.

En este ejemplo, la primera fila con el ID 2 se carga en la tabla. Se omite la segunda fila que contiene el valor de ID duplicado 2. El resto de las filas se cargan correctamente.

Formato JSON incorrecto
{"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}

El sistema detiene la carga cuando detecta la fila errónea. Aparece un mensaje de error que indica el final inesperado del archivo y su número de línea aproximado.

En este ejemplo, hay dos errores de formato JSON. A la fila con el ID 8 le falta una llave de cierre y al ID 9 le falta una coma entre dos campos JSON. Ambas entradas no cumplen con el formato Tipo de datos JSON, lo que provoca un fallo de carga. Solo la fila con ID 7 se carga correctamente en la tabla.

Note:

La operación de carga se para al detectar la primera instancia de error o inconsistencia en el archivo de entrada.
Falta la clave primaria en una fila
{"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}

El sistema detiene la carga cuando detecta la fila errónea. Aparece un mensaje de error que indica que la clave primaria debe tener un valor.

En este ejemplo, la segunda fila no incluye el campo de clave primaria que genera un error. Solo la fila con ID 2 se carga correctamente en la tabla.

No conformidad de esquema: campos faltantes, incorrectos o adicionales
{"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}

Si faltan campos que no sean la clave primaria en el archivo de entrada, los datos se cargan correctamente. Aparecerá un mensaje que le informará de que la acción se ha Los campos que faltan se rellenan con un valor nulo.

En este ejemplo, el nombre del campo se escribe incorrectamente en la fila con el ID 7 y el campo name falta en la fila con el ID 8. En ambos casos, todas las filas se cargan correctamente en la tabla. Los campos name se actualizan con un valor null.

Si la carga se detiene en el medio por cualquier motivo, puede realizar una de las siguientes acciones:
  • Si no hay columnas con valores de clave generados (es decir, si las claves están totalmente dictadas por el archivo JSON), puede empezar de nuevo con el mismo archivo. Las filas ya escritas se volverán a escribir.
  • Si se generan valores clave, al volver a empezar se escribirán nuevos registros en lugar de sobrescribir los registros existentes. La ruta más sencilla sería borrar la tabla y crearla de nuevo.
  • También puede eliminar todos los registros de la tabla ejecutando la sentencia DELETE FROM tablename en el formulario Explorar datos.

Si se supera el límite de escritura aprovisionado durante el proceso de carga, se mostrará un mensaje transitorio que lo indica, y la carga se ralentizará para evitar volver a superar el límite.