Usando a console para inserir dados da tabela

Saiba como inserir dados nas tabelas do Oracle NoSQL Database Cloud Service com a console do 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 este modo para fornecer os valores para as novas linhas declarativamente.

  2. Modo de Entrada JSON Avançado: Você pode usar esse modo para fornecer os valores para as novas linhas no formato JSON.

  3. Você pode usar a instrução INSERT para adicionar uma linha. Em Tabelas NoSQL", escolha a tabela em que 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 navegador.

Observação: Se a tabela for uma tabela Global Ativa, a adição de dados em uma região também adicionará os dados a todas as réplicas da tabela regional.

Inserindo Dados em Tabelas: Modo de Entrada Simples

Aprenda a inserir dados nas tabelas do Oracle NoSQL Database Cloud Service usando o modo de inserção de Entrada Simples.

Para inserir dados em tabelas:

  1. Acesse a console do NoSQL na Console do Infrastructure. Consulte Acessando o Serviço pela Console de Infraestrutura.

  2. A console do NoSQL lista todas as tabelas na tenancy. Para exibir detalhes da tabela, siga um destes procedimentos:

    • Clique no nome da tabela ou

    • Clique no menu 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 Linha, selecione Entrada Simples para Modo de Entrada.

  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: A inserção de um valor é obrigatória para todas as colunas não anulável 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.

Inserindo Dados em Tabelas: Modo de Entrada JSON Avançada

Aprenda a inserir dados em tabelas do Oracle NoSQL Database Cloud Service usando o modo de entrada JSON Avançado.

Para inserir dados em tabelas:

  1. Acesse a console do NoSQL na Console do Infrastructure. Consulte Acessando o Serviço pela Console de Infraestrutura.

  2. A console do NoSQL lista todas as tabelas na tenancy. Para exibir detalhes da tabela, siga um destes procedimentos:

    • Clique no nome da tabela ou

    • Clique no menu 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 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.

As colunas opcionais podem ser especificadas após o nome da tabela. Essa lista contém os nomes das colunas de um subconjunto das colunas da tabela. O subconjunto deve incluir todas as colunas de chave primária. Se não houver uma lista de colunas, a lista de colunas padrão será a 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 de sua 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 nenhum 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 todas as colunas ausentes quando o número de colunas na lista de colunas for 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: Especificando nomes de colunas e ignorando 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 Fazer Upload destina-se a carregar menos de alguns milhares de linhas. Este 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 do NoSQL. No entanto, se quiser inserir rapidamente algumas centenas ou alguns milhares de linhas, esse método de upload será uma abordagem rápida.

O arquivo a ser carregado deve conter uma série de objetos JSON. Os objetos podem ser expressos como itens separados por vírgulas de uma única matriz 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 em conformidade com o esquema da tabela para a qual será feito 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 como usar o 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"
}, ...

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. O número de linhas que foram confirmadas com sucesso no banco de dados será mostrado.

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 do esquema. Erros também podem ocorrer durante as solicitações do serviço. Esses erros também interrompem o upload e exibem uma mensagem.

Considere um exemplo de tabela 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.

Tratamento de Erros Durante o Upload

Caso 1: Texto Não JSON em uma das Linhas

Problema no arquivo de entrada:

Uma linha contém texto não JSON, como missed a line, entre dois 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}

Tratamento de erro:

O sistema ignora o texto e continua o upload. Uma mensagem de êxito é exibida após todas as linhas serem carregadas com êxito na tabela.

Neste exemplo, o texto missed a line é ignorado e as duas linhas com id 1 e 2 são carregadas com sucesso.

Caso 2: Duplicar Entradas de Chave Primária

Problema no arquivo de entrada:

O arquivo de entrada contém mais de uma linha com o mesmo valor de chave primária.

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

Tratamento de erro:

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 id 2 é carregada na tabela. A segunda linha que contém o valor de ID duplicado 2 é ignorada. Todas as outras linhas foram carregadas com êxito.

Caso 3: Formato JSON Incorreto

Problema no arquivo de entrada:

O arquivo de entrada contém linhas com formato JSON incorreto. Por exemplo, uma linha pode não ter uma chave de fechamento ou uma vírgula entre dois 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}

Tratamento de erro:

O sistema interrompe o upload quando detecta a linha com erro. Uma mensagem de erro é exibida indicando o fim inesperado do arquivo e seu número de linha aproximado.

Neste exemplo, há dois erros no formato JSON. A linha com id 8 não tem uma chave de fechamento e o id 9 não tem uma vírgula entre dois campos JSON. Ambas as 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 foi 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.

Caso 4: Chave Primária Ausente em uma Linha

Problema no arquivo de entrada:

Uma linha no arquivo de entrada não inclui o campo de chave primária.

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

Tratamento de erro:

O sistema interrompe o upload quando detecta a linha com erro. 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 um erro. Somente a linha com ID 2 foi carregada com êxito na tabela.

Caso 5: Não Conformidade do Esquema - Campos Ausentes, Incorretos ou Adicionais

Problema no arquivo de entrada:

O arquivo de entrada contém campos ausentes, nomeados incorretamente ou campos adicionais que não estão em conformidade com o esquema de tabela.

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

Tratamento de erro:

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 null.

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 null.

Se o upload for interrompido no meio por qualquer motivo, você poderá executar uma das seguintes ações:

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 será retardado para evitar exceder o limite novamente.