Utilisation de la console pour insérer des données de tableau
En savoir plus sur l'insertion de données dans des tables Oracle NoSQL Database Cloud Service à partir de la console NoSQL.
- Mode d'entrée simple : vous pouvez utiliser ce mode pour fournir les valeurs des nouvelles lignes de manière déclarative.
- Mode d'entrée JSON avancée : vous pouvez utiliser ce mode pour fournir les valeurs des nouvelles lignes au format JSON.
- Vous pouvez utiliser l'instruction INSERT pour ajouter une ligne. Sous NoSQL>>Tables, choisissez la table dans laquelle ajouter une ligne. Sous Explorer les données, ajoutez l'instruction INSERT dans la zone de texte fournie pour l'instruction SQL et exécutez la commande.
- Vous pouvez également télécharger en masse les données d'un fichier local dans la table, via le navigateur.
Remarque : si la table est une table active globale, l'ajout de données dans une région ajoute également les données à toutes les répliques de table régionale.
Insérer des données dans des tables : mode d'entrée simple
Apprenez à insérer des données dans des tables Oracle NoSQL Database Cloud Service en utilisant le mode d'insertion simple.
Insérer des données dans des tables : mode d'entrée JSON avancée
Learn how to insert data into Oracle NoSQL Database Cloud Service tables by using the Advanced JSON input mode.
Utiliser une commande SQL pour insérer des données
L'instruction INSERT permet de construire une nouvelle ligne et de l'ajouter à une table donnée.
Des colonnes facultatives peuvent être indiquées après le nom de la table. Cette liste contient les noms de colonne d'un sous-ensemble des colonnes de la table. Le sous-ensemble doit inclure toutes les colonnes de clé primaire. Si aucune liste de colonnes n'est présente, la liste de colonnes par défaut est celle qui contient toutes les colonnes de la table, dans l'ordre, elles sont spécifiées dans l'instruction CREATE TABLE.
Les colonnes de la liste des colonnes correspondent une à une aux expressions (ou mots-clés DEFAULT) répertoriées après la clause VALUES (une erreur est générée si le nombre d'expressions/DEFAULT est différent du nombre de colonnes). Ces expressions/Défauts calculent la valeur de la colonne associée dans la nouvelle ligne. Une erreur est générée si une expression renvoie plusieurs éléments. Si une expression ne renvoie aucun résultat, NULL est utilisé comme résultat de cette expression. Si au lieu d'une expression, le mot-clé DEFAULT apparaît dans la liste VALUES, la valeur par défaut de la colonne associée est utilisée comme valeur de cette colonne dans la nouvelle ligne. La valeur par défaut est également utilisée pour les colonnes manquantes lorsque le nombre de colonnes dans la liste de colonnes est inférieur au nombre total de colonnes dans la table.
BaggageInfo
avec toutes les valeurs de colonne :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"
} ]
)
Exemple 2 : ignorer des données lors de l'exécution d'une instruction INSERT en spécifiant la clause 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"
} ]
)
Exemple 3 : Indiquer des noms de colonne et ignorer des colonnes dans l'instruction d'insertion.
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
avec toutes les valeurs de colonne :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"
}]
}]
}]
});
Téléchargement de lignes de table
Le bouton Télécharger les données de la page de détails de la table permet de télécharger en masse les données d'un fichier local vers la table, via le navigateur.
La fonctionnalité Charger est destinée au chargement de moins de quelques milliers de lignes. Cette fonctionnalité est idéale pour effectuer une étude de faisabilité ou effectuer des tests de base du service. C'est un moyen pratique de remplir une petite table. Si vous voulez écrire des dizaines de milliers de lignes, il est préférable, pour des raisons de performances, d'utiliser Oracle NoSQL Database Migrator ou d'écrire votre propre programme à l'aide de l'un des kits SDK NoSQL. Toutefois, si vous souhaitez insérer rapidement quelques centaines ou quelques milliers de lignes, cette méthode de chargement est une approche rapide.
Le fichier à télécharger doit contenir une série d'objets JSON. Les objets peuvent être exprimés sous la forme d'éléments séparés par des virgules d'un seul tableau ou sous la forme d'une séquence d'objets simples délimités par des accolades, sans séparateur syntaxique. Le contenu de chaque objet doit être au format JSON correct et conforme au schéma de la table vers laquelle il sera téléchargé.
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"
}, ...
- Si une valeur de colonne n'est pas requise par le schéma de la table, la propriété JSON correspondante peut être ignorée.
- Si une valeur de colonne est GENERATED ALWAYS, la propriété JSON correspondante doit être ignorée.
- Si un objet JSON contient des propriétés dont les noms ne correspondent à aucun nom de colonne, ces propriétés sont ignorées.
Pour utiliser la fonctionnalité de téléchargement, cliquez sur le bouton Télécharger les données et sélectionnez le fichier à télécharger. Le téléchargement commence immédiatement et la progression sera affichée sur la page. Une fois l'opération terminée, le nombre total de lignes insérées s'affiche. Vous pouvez interrompre le chargement en cliquant sur le bouton Arrêter le chargement. Le nombre de lignes validées avec succès dans la base de données sera affiché.
Si une erreur dans le fichier d'entrée est détectée, le téléchargement s'arrête et un message d'erreur avec un numéro de ligne approximatif s'affiche. Les erreurs d'entrée peuvent être dues à une syntaxe JSON incorrecte ou à une non-conformité de schéma. Des erreurs peuvent également se produire lors des demandes pour le service. De telles erreurs arrêtent également le téléchargement et affichent un message.
CREATE TABLE IF NOT EXISTS NDCStable (id INTEGER, name STRING, email STRING, age INTEGER, income DOUBLE, PRIMARY KEY(SHARD(id)))
Table - Traitement des erreurs pendant le chargement
Problèmes dans le fichier d'entrée | Gestion des erreurs |
---|---|
Texte non JSON dans l'une des lignes
|
Le système ignore le texte et poursuit le chargement. Un message de succès s'affiche une fois que toutes les lignes ont été chargées dans la table. Dans cet exemple, le texte "missed a line" est ignoré et les deux lignes avec les ID 1 et 2 sont chargées avec succès. |
Entrées de clé primaire en double
|
Le système ignore l'entrée de ligne dupliquée et poursuit le chargement. Un message de succès s'affiche après le chargement de toutes les lignes. Dans cet exemple, la première ligne portant l'ID 2 est chargée dans la table. La deuxième ligne contenant la valeur d'ID dupliquée 2 est ignorée. Toutes les autres lignes ont été téléchargées vers le serveur. |
Format JSON incorrect
|
Le système arrête le chargement lorsqu'il détecte la ligne erronée. Un message d'erreur s'affiche indiquant la fin inattendue du fichier et son numéro de ligne approximatif. Dans cet exemple, il existe deux erreurs de format JSON. Une accolade fermante est manquante sur la ligne avec l'ID 8 et une virgule entre deux champs JSON est manquante pour l'ID 9. Ces deux entrées ne sont pas conformes au format Type de données JSON, ce qui entraîne un échec de téléchargement. Seule la ligne portant l'ID 7 a été chargée avec succès dans la table. Remarques : L'opération de téléchargement est arrêtée lors de la détection de la première instance d'erreur ou d'incohérence dans le fichier d'entrée. |
Clé primaire manquante sur une ligne
|
Le système arrête le chargement lorsqu'il détecte la ligne erronée. Un message d'erreur s'affiche indiquant que la clé primaire doit avoir une valeur. Dans cet exemple, la deuxième ligne n'inclut pas le champ de clé primaire, ce qui entraîne une erreur. Seule la ligne portant l'ID 2 a été chargée avec succès dans la table. |
Non-conformité du schéma : champs manquants, incorrects ou supplémentaires
|
Si des champs autres que la clé primaire sont manquants dans le fichier d'entrée, les données sont chargées avec succès. Un message de succès apparaît. Les champs manquants sont renseignés avec une valeur NULL. Dans cet exemple, le nom du champ est mal orthographié dans la ligne avec l'ID 7 et le champ |
- Si aucune colonne ne contient de valeurs de clé générées (c'est-à-dire si les clés sont entièrement dictées par le fichier JSON), vous pouvez simplement recommencer avec le même fichier. Les lignes déjà écrites seront à nouveau écrites.
- Si des valeurs de clé sont générées, le fait de recommencer écrirait de nouveaux enregistrements au lieu d'écraser des enregistrements existants. Le chemin le plus simple consiste à supprimer la table et à la créer à nouveau.
- Vous pouvez également enlever tous les enregistrements de la table en exécutant l'instruction
DELETE FROM tablename
dans le formulaire Explorer les données.
Si la limite d'écriture provisionnée est dépassée pendant le processus de téléchargement, un message transitoire l'indiquant sera affiché et le téléchargement sera ralenti pour éviter de dépasser à nouveau la limite.
Utilisation de la console pour insérer des données de tableau