Uso da console para inserir dados da tabela
Saiba como inserir dados nas tabelas do Oracle NoSQL Database Cloud Service com a console NoSQL.
- Modo de Entrada Simples: Você pode usar esse modo para fornecer os valores das novas linhas de forma declarativa.
- Modo de Entrada JSON Avançada: Você pode usar esse modo para fornecer os valores das novas linhas no formato JSON.
- Você pode usar a instrução INSERT para adicionar uma linha. Em NoSQL>>Tabelas, escolha a tabela na qual você deseja adicionar uma linha. Em Explorar Dados, adicione a instrução INSERT na caixa de texto fornecida para a instrução SQL e execute o comando.
- Você também pode fazer upload em massa dos dados de um arquivo local para a tabela, por meio do browser.
Observação: Se a tabela for uma tabela Ativa Global, a adição de dados em uma região também adicionará os dados a todas as réplicas da tabela regional.
Tópicos Relacionados
Inserir dados em tabelas: modo de entrada simples
Aprenda a inserir dados nas tabelas do Oracle NoSQL Database Cloud Service usando o modo de entrada simples.
Inserir dados em tabelas: modo de entrada JSON avançada
Aprenda a inserir dados nas tabelas do Oracle NoSQL Database Cloud Service usando o modo de entrada JSON Avançada.
Usando o comando SQL para inserir dados
A instrução INSERT é usada para construir uma nova linha e adicioná-la a uma tabela especificada.
Colunas opcionais podem ser especificadas após o nome da tabela. Essa lista contém os nomes de coluna de um subconjunto das colunas da tabela. O subconjunto deve incluir todas as colunas de chave primária. Se nenhuma lista de colunas estiver presente, a lista de colunas padrão será aquela que contém todas as colunas da tabela. Na ordem, elas serão especificadas na instrução CREATE TABLE.
As colunas na lista de colunas correspondem uma a uma às expressões (ou palavras-chave DEFAULT) listadas após a cláusula VALUES (um erro será gerado se o número de expressões/DEFAULTs não for igual ao número de colunas). Essas expressões/DEFAULTs calculam o valor da coluna associada na nova linha. Um erro será gerado se uma expressão retornar mais de um item. Se uma expressão não retornar um resultado, NULL será usado como o resultado dessa expressão. Se, em vez de uma expressão, a palavra-chave DEFAULT aparecer na lista VALUES, o valor padrão da coluna associada será usado como o valor dessa coluna na nova linha. O valor padrão também é usado para qualquer coluna ausente quando o número de colunas na lista de colunas é menor que o número total de colunas na tabela.
BaggageInfo
fornecendo todos os valores de coluna: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"
} ]
)
Exemplo 2: Ignorando alguns dados ao executar uma instrução INSERT especificando a cláusula 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"
} ]
)
Exemplo 3: Especificar nomes de colunas e ignorar colunas na instrução de inserção.
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
fornecendo todos os valores de coluna: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 de linhas da tabela
O botão Fazer Upload de Dados na página de detalhes da Tabela permite o upload em massa de dados de um arquivo local para a tabela, por meio do browser.
O recurso Carregar destina-se a carregar menos de alguns milhares de linhas. Esse recurso é ótimo para realizar uma prova de conceito (POC) ou fazer testes básicos do serviço. É uma maneira conveniente de preencher uma pequena tabela. Se você quiser gravar dezenas de milhares de linhas, por motivos de desempenho, será melhor usar o Oracle NoSQL Database Migrator ou criar seu próprio programa usando um dos SDKs NoSQL. Se, no entanto, você quiser inserir rapidamente algumas centenas ou alguns milhares de linhas, esse método de upload é uma abordagem rápida.
O arquivo a ser submetido a upload deve conter uma série de objetos JSON. Os objetos podem ser expressos como itens separados por vírgulas de um único array ou como uma sequência de objetos simples delimitados por chaves, sem delimitadores sintáticos entre eles. O conteúdo de cada objeto deve ser formatado corretamente em JSON e deve estar de acordo com o esquema da tabela para a qual será feito o upload.
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 um valor de coluna não for exigido pelo esquema da tabela, a propriedade JSON correspondente poderá ser deixada de fora.
- Se um valor de coluna for GERATED ALWAYS, a propriedade JSON correspondente deverá ser deixada de fora.
- Se um objeto JSON contiver propriedades com nomes que não correspondam a nenhum nome de coluna, essas propriedades serão ignoradas.
Para usar o recurso de upload, clique no botão Fazer Upload de Dados e selecione o arquivo a ser submetido a upload. O upload começa imediatamente e o progresso será mostrado na página. Após a conclusão bem-sucedida, o número total de linhas inseridas será mostrado. Você pode interromper o upload clicando no botão Interromper Upload. Será mostrado o número de linhas submetidas a commit com sucesso no banco de dados.
Se um erro no arquivo de entrada for detectado, o upload será interrompido e uma mensagem de erro com um número de linha aproximado será mostrada. Erros de entrada podem ser causados por sintaxe JSON incorreta ou não conformidade de esquema. Também podem ocorrer erros durante as solicitações do serviço. Esses erros também interrompem o upload e exibem uma mensagem.
CREATE TABLE IF NOT EXISTS NDCStable (id INTEGER, name STRING, email STRING, age INTEGER, income DOUBLE, PRIMARY KEY(SHARD(id)))
Tabela - Tratamento de Erros Durante o Upload
Problemas no arquivo de entrada | Tratamento de erro |
---|---|
Um texto não JSON em uma das linhas
|
O sistema ignora o texto e continua o upload. Uma mensagem de êxito será exibida depois que todas as linhas forem carregadas com êxito na tabela. Neste exemplo, o texto "missed a line" é ignorado e as duas linhas com os IDs 1 e 2 são carregadas com êxito. |
Entradas de chave primária duplicadas
|
O sistema ignora a entrada de linha duplicada e continua o carregamento. Uma mensagem de êxito é exibida após o carregamento bem-sucedido de todas as linhas. Neste exemplo, a primeira linha com o id 2 é carregada na tabela. A segunda linha que contém o valor de ID duplicado 2 é ignorada. O upload de todas as outras linhas foi bem-sucedido. |
Formato JSON incorreto
|
O sistema interrompe o carregamento quando detecta a linha incorreta. Uma mensagem de erro é exibida indicando o fim inesperado do arquivo e seu número de linha aproximado. Neste exemplo, há dois erros de formato JSON. A linha com o id 8 está sem uma chave de fechamento e o id 9 está sem uma vírgula entre dois campos JSON. Essas duas entradas não estão em conformidade com o formato Tipo de Dados JSON, resultando em falha de upload. Somente a linha com ID 7 é carregada com êxito na tabela. Observação: A operação de upload é interrompida ao detectar a primeira instância de erro ou inconsistência no arquivo de entrada. |
Chave primária ausente em uma linha
|
O sistema interrompe o carregamento quando detecta a linha incorreta. Uma mensagem de erro é exibida indicando que a chave primária deve ter um valor. Neste exemplo, a segunda linha não inclui o campo de chave primária que resulta em erro. Somente a linha com ID 2 é carregada com êxito na tabela. |
Não conformidade do esquema - campos ausentes, incorretos ou adicionais
|
Se campos diferentes da chave primária estiverem ausentes no arquivo de entrada, o upload dos dados será bem-sucedido. Uma mensagem de êxito é exibida. Os campos ausentes são preenchidos com um valor nulo. Neste exemplo, o nome do campo está escrito incorretamente na linha com o id 7 e o campo |
- Se não houver colunas com valores de chave gerados (ou seja, se as chaves forem totalmente ditadas pelo arquivo JSON), você poderá simplesmente começar de novo com o mesmo arquivo. As linhas já gravadas serão gravadas novamente.
- Se houver valores de chave gerados, iniciar novamente gravará novos registros em vez de substituir os registros existentes. O caminho mais fácil seria eliminar a tabela e criá-la novamente.
- Como alternativa, você pode remover todos os registros da tabela executando a instrução
DELETE FROM tablename
no formulário Explorar dados.
Se o limite de gravação provisionado for excedido durante o processo de upload, uma mensagem transitória indicando isso será exibida e o upload ficará lento para evitar exceder o limite novamente.
Uso da console para inserir dados da tabela