Uso da console para inserir dados da tabela

Saiba como inserir dados nas tabelas do Oracle NoSQL Database Cloud Service com a console NoSQL.

A console NoSQL permite que você insira novas linhas nas tabelas do Oracle NoSQL Database Cloud Service nos seguintes modos:
  1. Modo de Entrada Simples: Você pode usar esse modo para fornecer os valores das novas linhas de forma declarativa.
  2. Modo de Entrada JSON Avançada: Você pode usar esse modo para fornecer os valores das novas linhas no formato JSON.
  3. 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.
  4. 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.

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.

Para inserir dados em tabelas:
  1. Acesse a console NoSQL na Console de Infraestrutura. Consulte Accessing the Service from the Infrastructure Console.
  2. A console NoSQL lista todas as tabelas na tenancy. To view table details, do either of the following:
    • Clique no nome da tabela ou
    • Clique no menu de ação correspondente ao nome da tabela e selecione Exibir Detalhes.
    A página Detalhes da Tabela é aberta.
  3. Clique em Inserir Linha.
  4. Na janela Insert Row, selecione Simple Input para Entry Mode.
  5. Todas as colunas da tabela são listadas. Insira os dados para as colunas da tabela. Para alguns tipos de coluna, como Binário, você faz o upload dos dados.

    Observação:

    É obrigatório informar um valor para todas as colunas não anuláveis da tabela.
  6. Clique em Inserir Linha.
    O registro é inserido na tabela.
Para exibir a ajuda da página atual, clique no link de ajuda na parte superior da página.

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.

Para inserir dados em tabelas:
  1. Acesse a console NoSQL na Console de Infraestrutura. Consulte Accessing the Service from the Infrastructure Console.
  2. A console NoSQL lista todas as tabelas na tenancy. To view table details, do either of the following:
    • Clique no nome da tabela ou
    • Clique no menu de ação correspondente ao nome da tabela e selecione Exibir Detalhes.
    A página Detalhes da Tabela é aberta.
  3. Clique em Inserir Linha.
  4. Na janela Inserir Registro, selecione Entrada JSON Avançada para o Modo de Entrada.
  5. Cole ou faça o upload da Definição de Registro no formato JSON.
  6. Clique em Inserir Linha.
    O registro é inserido na tabela.
Para exibir a ajuda da página atual, clique no link de ajuda na parte superior da página.

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.

Exemplo 1: Inserindo uma linha 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.

Você pode ignorar os dados de algumas colunas 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"
  } ]
)

Exemplo 3: Especificar nomes de colunas e ignorar colunas na instrução de inserção.

Se você tiver dados somente para algumas colunas de uma tabela, poderá especificar o nome das colunas na cláusula INSERT e, em seguida, especificar os valores correspondentes na 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"
  } ]
)
Exemplo 4: Inserindo uma linha na tabela 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.

Exemplo: Uma tabela é criada usando a seguinte instrução DDL
CREATE TABLE Simple ( id integer, val string, PRIMARY KEY ( id ) )
O exemplo a seguir ilustra o uso do formato de matriz para o conteúdo do arquivo.

[
  {
    "id": 0,
    "val": "0"
  },
  {
    "id": 1,
    "val": "2"
  }, ...
]
O exemplo a seguir ilustra o uso de objetos simples para o conteúdo do arquivo.

{
  "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.

Considere uma tabela de amostra com o seguinte esquema:
CREATE TABLE IF NOT EXISTS NDCStable (id INTEGER, name STRING, email STRING, age INTEGER, income DOUBLE, PRIMARY KEY(SHARD(id)))
A tabela a seguir lista alguns erros comuns no arquivo de entrada e o tratamento de erros correspondente durante o upload de dados.

Tabela - Tratamento de Erros Durante o Upload

Problemas no arquivo de entrada Tratamento de erro
Um texto não JSON em uma das linhas
{"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}

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
{"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}

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
{"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}

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
{"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}

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
{"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}

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 name está ausente na linha com o id 8. Em ambos os casos, todas as linhas são carregadas com êxito na tabela. Os campos name são atualizados com um valor nulo.

Se o upload for interrompido no meio por qualquer motivo, você poderá fazer o seguinte:
  • 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.