Uso de la consola para insertar datos de tabla
Aprenda a insertar datos en tablas de Oracle NoSQL Database Cloud Service desde la consola de NoSQL.
La consola de NoSQL permite insertar nuevas filas en las tablas de Oracle NoSQL Database Cloud Service en los siguientes modos:
-
Modo de entrada simple: puede utilizar este modo para proporcionar los valores para las nuevas filas con formato declarativo.
-
Modo de entrada JSON avanzada: puede utilizar este modo para proporcionar los valores para las nuevas filas en formato JSON.
-
Puede utilizar la sentencia INSERT para agregar una fila. En Tablas de NoSQL, seleccione la tabla en la que desea agregar una fila. En Explore Data, agregue la sentencia INSERT en el cuadro de texto proporcionado para la sentencia SQL y ejecute el comando.
-
También puede cargar de forma masiva los datos de un archivo local en la tabla, a través del explorador.
Nota: Si la tabla es una tabla activa global, al agregar datos en una región también se agregan los datos a todas las réplicas de tablas regionales.
Inserción de datos en tablas: modo de entrada simple
Descubra cómo insertar datos en tablas de Oracle NoSQL Database Cloud Service mediante el modo de inserción Entrada simple.
Para insertar datos en tablas:
-
Acceda a la consola de NoSQL desde la consola de Infrastructure. Consulte Acceso al servicio desde la consola del Infrastructure.
-
La consola de 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ú que corresponda al nombre de la tabla y seleccione Ver detalles.
Se abrirá la página Detalles de la tabla.
-
-
Haga clic en Insertar fila.
-
En la ventana Insertar fila, seleccione Entrada simple para Modo de Entrada.
-
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.
Nota: La introducción de un valor es obligatoria para todas las columnas no nulas de la tabla.
-
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
Descubra cómo insertar datos en tablas de Oracle NoSQL Database Cloud Service mediante el modo de entrada JSON avanzada.
Para insertar datos en tablas:
-
Acceda a la consola de NoSQL desde la consola de Infrastructure. Consulte Acceso al servicio desde la consola del Infrastructure.
-
La consola de 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ú que corresponda al nombre de la tabla y seleccione Ver detalles.
Se abrirá la página Detalles de la tabla.
-
-
Haga clic en Insertar fila.
-
En la ventana Insertar registro, seleccione Entrada JSON avanzada para el Modo de Entrada.
-
Pegue o cargue la definición de registro en formato JSON.
-
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 construir una nueva fila y agregarla a una tabla especificada.
Se pueden especificar columnas opcionales 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 presente, 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 de uno a uno a las expresiones (o palabras clave DEFAULT) que se muestran 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 su columna asociada en la nueva fila. Se emite 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: omitir 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 de tabla permite la carga masiva de datos de un archivo local en la tabla, a través del 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 hacer pruebas básicas del servicio. Es una forma conveniente de rellenar una pequeña mesa. 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 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á.
Ejemplo: se crea una tabla mediante 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 omitir la propiedad JSON correspondiente.
-
Si un valor de columna está GENERADO SIEMPRE, se debe omitir la propiedad JSON correspondiente.
-
Si un objeto JSON contiene propiedades con nombres que no coinciden con ningún nombre de columna, esas propiedades se ignoran.
Para utilizar la función de carga, haga clic en el botón Cargar datos y seleccione el archivo que se va a cargar. La carga comienza inmediatamente y el progreso se mostrará en la página. Una vez finalizada correctamente, se mostrará el número total de filas insertadas. Puede interrumpir la carga haciendo clic en el botón Parar Carga. Se mostrará el número de filas que se han confirmado correctamente en la base de datos.
Si se detecta un error en el archivo de entrada, se detendrá la carga y se mostrará un mensaje de error con un número de línea aproximado. Los errores de entrada pueden deberse a una sintaxis de JSON incorrecta o a una 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.
Manejo de errores durante la carga
Caso 1: Texto no JSON en una de las filas
Problema en el archivo de entrada:
Una fila contiene texto que no es JSON, como missed a line, entre dos registros JSON válidos.
{"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}
Manejo del error:
El sistema ignora el texto y continúa con la carga. Se muestra un mensaje de éxito después de que todas las filas se hayan cargado correctamente en la tabla.
En este ejemplo, se omite el texto missed a line y las dos filas con el ID 1 y 2 se cargan correctamente.
Caso 2: Entradas de clave primaria duplicadas
Problema en el archivo de entrada:
El archivo de entrada contiene más de una fila con el mismo valor de clave primaria.
{"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}
Manejo del error:
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. Todas las demás filas se han cargado correctamente.
Caso 3: formato JSON incorrecto
Problema en el archivo de entrada:
El archivo de entrada contiene filas con un formato JSON incorrecto. Por ejemplo, es posible que a una fila le falte una llave de cierre o una coma entre dos campos JSON.
{"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}
Manejo del error:
El sistema detiene la carga cuando detecta la fila errónea. Se muestra 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 de tipo de datos JSON, lo que provoca un fallo de carga. Solo la fila con el ID 7 se carga correctamente en la tabla.
Nota: La operación de carga se para al detectar la primera instancia de error o inconsistencia en el archivo de entrada.
Caso 4: Falta la clave primaria en una fila
Problema en el archivo de entrada:
Una fila del archivo de entrada no incluye el campo de clave primaria.
{"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}
Manejo del error:
El sistema detiene la carga cuando detecta la fila errónea. Se muestra 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 el ID 2 se carga correctamente en la tabla.
Caso 5: No conformidad de esquema: campos faltantes, incorrectos o adicionales
Problema en el archivo de entrada:
El archivo de entrada contiene campos que faltan, con nombre incorrecto o campos adicionales que no se ajustan al esquema de tabla.
{"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}
Manejo del error:
Si faltan campos que no sean la clave primaria en el archivo de entrada, los datos se cargan correctamente. Aparecerá un mensaje que le indicará que la acción se ha realizado correctamente, Los campos que faltan se rellenan con un valor null.
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 para 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), simplemente puede volver a empezar con el mismo archivo. Las filas ya escritas se volverán a escribir.
-
Si se generan valores clave, al volver a empezar se escribirían nuevos registros en lugar de sobrescribir los 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 tablenameen el formulario Explorar datos.
Si se excede el límite de escritura aprovisionado durante el proceso de carga, se mostrará un mensaje transitorio que indica que se debe, y la carga se ralentizará para evitar que se vuelva a exceder el límite.