Utilizzo della console per inserire i dati della tabella
Scopri come inserire i dati nelle tabelle di Oracle NoSQL Database Cloud Service dalla console NoSQL.
- Modalità di input semplice: è possibile utilizzare questa modalità per fornire i valori per le nuove righe in modo dichiarativo.
- Modalità di input JSON avanzata: è possibile utilizzare questa modalità per fornire i valori per le nuove righe in formato JSON.
- È possibile utilizzare l'istruzione INSERT per aggiungere una riga. In NoSQL>>Tabelle, scegliere la tabella in cui si desidera aggiungere una riga. In Esplora dati aggiungere l'istruzione INSERT nella casella di testo fornita per l'istruzione SQL ed eseguire il comando.
- Puoi anche caricare in blocco i dati da un file locale nella tabella, tramite il browser.
Nota: se la tabella è una tabella attiva globale, l'aggiunta di dati in un'area aggiunge anche i dati a tutte le repliche della tabella regionale.
Argomenti correlati
Inserimento di dati nelle tabelle: modalità di input semplice
Scopri come inserire i dati nelle tabelle di Oracle NoSQL Database Cloud Service utilizzando la modalità di inserimento input semplice.
Inserimento di dati nelle tabelle: modalità di input JSON avanzata
Scopri come inserire i dati nelle tabelle di Oracle NoSQL Database Cloud Service utilizzando la modalità di input JSON avanzata.
Utilizzo del comando SQL per inserire i dati
L'istruzione INSERT viene utilizzata per creare una nuova riga e aggiungerla a una tabella specificata.
È possibile specificare una o più colonne facoltative dopo il nome della tabella. Questa lista contiene i nomi delle colonne per un subset delle colonne della tabella. Il subset deve includere tutte le colonne chiave primaria. Se non è presente alcun elenco di colonne, l'elenco di colonne predefinito è quello contenente tutte le colonne della tabella, nell'ordine specificato nell'istruzione CREATE TABLE.
Le colonne nell'elenco delle colonne corrispondono uno a uno alle espressioni (o parole chiave DEFAULT) elencate dopo la clausola VALUES (viene generato un errore se il numero di espressioni/DEFAULT non è uguale al numero di colonne). Queste espressioni/DEFAULT calcolano il valore della colonna associata nella nuova riga. Viene generato un errore se un'espressione restituisce più elementi. Se un'espressione non restituisce alcun risultato, come risultato di tale espressione viene utilizzato NULL. Se invece di un'espressione, la parola chiave DEFAULT viene visualizzata nell'elenco VALORI, come valore della nuova riga viene utilizzato il valore predefinito della colonna associata. Il valore predefinito viene utilizzato anche per le colonne mancanti quando il numero di colonne nell'elenco delle colonne è inferiore al numero totale di colonne nella tabella.
BaggageInfo
che fornisce tutti i valori di colonna: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"
} ]
)
Esempio 2: alcuni dati vengono saltati durante l'esecuzione di un'istruzione INSERT specificando la clausola 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"
} ]
)
Esempio 3: specifica dei nomi delle colonne e ignora le colonne nell'istruzione insert.
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
che fornisce tutti i valori di colonna: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"
}]
}]
}]
});
Caricamento delle righe della tabella
Il pulsante Carica dati nella pagina Dettagli tabella consente il caricamento di massa dei dati da un file locale nella tabella tramite il browser.
La funzione Carica consente di caricare meno di poche migliaia di righe. Questa funzione è ideale per eseguire un proof of concept (POC) o per eseguire test di base del servizio. È un modo conveniente per popolare un piccolo tavolo. Se desideri scrivere decine di migliaia di righe, per motivi legati alle prestazioni è preferibile utilizzare Oracle NoSQL Database Migrator o scrivere il proprio programma utilizzando uno degli SDK NoSQL. Se, tuttavia, si desidera inserire rapidamente alcune centinaia o poche migliaia di righe, questo metodo di caricamento è un approccio rapido.
Il file da caricare deve contenere una serie di oggetti JSON. Gli oggetti possono essere espressi come elementi separati da virgole di un singolo array o come sequenza di oggetti semplici delimitati da parentesi graffe, senza delimitatori sintattici tra loro. Il contenuto di ogni oggetto deve essere in formato JSON corretto e deve essere conforme allo schema della tabella in cui verrà caricato.
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"
}, ...
- Se lo schema della tabella non richiede un valore di colonna, è possibile che la proprietà JSON corrispondente non sia disponibile.
- Se il valore di una colonna è GENERATED ALWAYS, è necessario mantenere la proprietà JSON corrispondente.
- Se un oggetto JSON contiene proprietà con nomi che non corrispondono ad alcun nome di colonna, tali proprietà vengono ignorate.
Per utilizzare la funzione di caricamento, fare clic sul pulsante Carica dati e selezionare il file da caricare. Il caricamento inizia immediatamente e l'avanzamento verrà visualizzato nella pagina. Al completamento dell'operazione, verrà visualizzato il numero totale di righe inserite. È possibile interrompere il caricamento facendo clic sul pulsante Interrompi caricamento. Verrà visualizzato il numero di righe di cui è stato eseguito correttamente il commit nel database.
Se viene rilevato un errore nel file di input, il caricamento verrà interrotto e verrà visualizzato un messaggio di errore con un numero di riga approssimativo. Gli errori di input potrebbero essere causati dalla sintassi JSON errata o dalla non conformità dello schema. Gli errori possono verificarsi anche durante le richieste per il servizio. Questi errori impediscono inoltre il caricamento e la visualizzazione di un messaggio.
CREATE TABLE IF NOT EXISTS NDCStable (id INTEGER, name STRING, email STRING, age INTEGER, income DOUBLE, PRIMARY KEY(SHARD(id)))
Tabella - Gestione degli errori durante il caricamento
Problemi nel file di input | Gestione errori |
---|---|
Testo non JSON in una delle righe
|
Il sistema ignora il testo e continua il caricamento. Viene visualizzato un messaggio di operazione riuscita dopo che tutte le righe sono state caricate correttamente nella tabella. In questo esempio il testo "riga mancante" viene saltato e le due righe con ID 1 e 2 vengono caricate correttamente. |
Voci di chiave primaria duplicate
|
Il sistema salta la voce di riga duplicata e continua il caricamento. Dopo il caricamento di tutte le righe, viene visualizzato un messaggio di operazione riuscita. In questo esempio, la prima riga con ID 2 viene caricata nella tabella. La seconda riga contenente il valore ID duplicato 2 viene saltata. Caricamento di tutte le altre righe riuscito. |
Formato JSON errato
|
Il sistema interrompe il caricamento quando rileva la riga errata. Viene visualizzato un messaggio di errore che indica la fine imprevista del file e il relativo numero di riga approssimativo. In questo esempio sono presenti due errori di formato JSON. Nella riga con ID 8 manca una parentesi graffa di chiusura e ID 9 manca una virgola tra due campi JSON. Entrambe queste voci non sono conformi al formato Tipo di dati JSON, con conseguente errore di caricamento. Caricamento nella tabella solo della riga con ID 7 riuscito. Nota L'operazione di caricamento viene interrotta al rilevamento della prima istanza di errore o incoerenza nel file di input. |
Chiave primaria mancante in una riga
|
Il sistema interrompe il caricamento quando rileva la riga errata. Viene visualizzato un messaggio di errore che indica che la chiave primaria deve avere un valore. In questo esempio, la seconda riga non include il campo della chiave primaria con conseguente errore. Caricamento nella tabella solo della riga con ID 2 riuscito. |
Non conformità schema: campi mancanti, errati o aggiuntivi
|
Se nel file di input mancano campi diversi dalla chiave primaria, i dati vengono caricati correttamente. Verrà visualizzato un messaggio di conferma. I campi mancanti vengono popolati con un valore nullo. In questo esempio il nome del campo è scritto in modo errato nella riga con ID 7 e il campo |
- Se non ci sono colonne con valori di chiave generati (ovvero, se le chiavi sono interamente dettate dal file JSON), puoi semplicemente ricominciare con lo stesso file. Le righe già scritte verranno scritte di nuovo.
- Se sono presenti valori chiave generati, ricominciare scriverebbe nuovi record invece di sovrascrivere i record esistenti. Il percorso più semplice sarebbe quello di eliminare la tabella e crearla di nuovo.
- In alternativa, è possibile rimuovere tutti i record dalla tabella eseguendo l'istruzione
DELETE FROM tablename
nel form Esplora dati.
Se durante il processo di caricamento viene superato il limite di scrittura di cui è stato eseguito il provisioning, verrà visualizzato un messaggio transitorio che lo indica e il caricamento verrà rallentato per evitare di superare di nuovo il limite.
Utilizzo della console per inserire i dati della tabella