Manipulação de Dados JSON no Oracle 21c: Um Guia para Concursos

Descubra como o Oracle 21c revolucionou a manipulação de dados JSON, essencial para concursos e aplicações práticas.

Por
3 min. de leitura

Olá pessoal ! As bancas tem cobrado o Oracle 21 que trouxe melhorias importantes para o suporte a dados JSON, tornando-se uma escolha poderosa para gerenciar dados semi-estruturados. Neste artigo, vamos explorar como criar, armazenar e atualizar dados JSON, abordando comandos que podem ser cobrados em provas.

1. O que é JSON e por que é relevante?

JSON (JavaScript Object Notation) é um formato leve de troca de dados, amplamente utilizado por sua simplicidade e legibilidade. Nos bancos de dados modernos, a capacidade de armazenar e manipular JSON permite maior flexibilidade para lidar com dados semi-estruturados. No Oracle 21c, essa funcionalidade é ampliada com novos operadores e funções que tornam a manipulação de JSON mais eficiente.

2. Criando uma Tabela com Campo JSON

No Oracle 21c, é possível criar tabelas com colunas do tipo JSON, permitindo o armazenamento nativo de documentos JSON. Um exemplo prático é a criação de uma tabela j_order, onde armazenaremos dados de pedidos. O comando básico é:

CREATE TABLE j_order (

    id INTEGER PRIMARY KEY,

    po_doc JSON

);

Neste exemplo, a tabela j_order possui duas colunas: id, que é a chave primária do tipo inteiro, e po_doc, onde os dados JSON serão armazenados.

Veja que rodando no Oracle LIVE não funciona, vou anexar a tela de exemplo:

Pois ele ainda roda em cima de um ORACLE 19c, onde o tipo ainda não existia, por isso ao simular esses comandos tenha a versão correta do ORACLE.

3. Armazenando Dados JSON

Depois de criar a tabela, podemos inserir documentos JSON no campo po_doc. Por exemplo, para inserir um pedido com informações de endereço e telefone, usamos o comando INSERT:

INSERT INTO j_order (id, po_doc)

VALUES (1, ‘{ “address”: “123 Main St”, “phone”: “555-1234” }’);

Esse comando adiciona um documento JSON com campos address e phone ao pedido de ID 1.

4. Atualizando Dados JSON com JSON_TRANSFORM

O Oracle 21c introduziu funções para modificar dados JSON diretamente, sem precisar sobrescrever o documento inteiro. A função JSON_TRANSFORM permite atualizar ou remover valores em um documento JSON existente. Por exemplo:

UPDATE j_order

SET po_doc = JSON_TRANSFORM(po_doc,

    SET ‘$.address’ = ‘primary’,

    REMOVE ‘$.phone’

);

Este comando altera o valor do campo address para “primary” e remove o campo phone.

5. O Operador SET

No exemplo acima, usamos o operador SET dentro da função JSON_TRANSFORM. Esse operador permite modificar um valor existente ou adicionar um novo campo ao JSON. No comando, $.address se refere ao campo address no documento JSON e o define como “primary”.

6. O Operador REMOVE

Outro operador importante é o REMOVE, que exclui um campo específico dentro do JSON. No comando anterior, REMOVE ‘$.phone’ remove o campo phone do documento JSON, simplificando a estrutura de dados conforme necessário.

7. Sintaxe de Caminho JSON no Oracle

A sintaxe $.campo usada nos operadores SET e REMOVE é chamada de “caminho JSON” e permite navegar até um campo específico dentro do documento JSON. O símbolo $ representa a raiz do documento, e campo refere-se à chave específica a ser modificada.

8. Verificando Estrutura JSON

O Oracle 21c também permite verificar a estrutura JSON diretamente na coluna. Usar IS JSON na definição de tabela garante que apenas dados no formato JSON válido possam ser inseridos na coluna po_doc, o que ajuda a evitar erros de estrutura.

ALTER TABLE j_order ADD CONSTRAINT po_doc_is_json CHECK (po_doc IS JSON);

Esse comando adiciona uma restrição para garantir que todos os valores em po_doc estejam no formato JSON.

9. Buscando Dados em Campos JSON

Além de modificar, também é possível consultar dados JSON no Oracle 21c. Usando funções como JSON_VALUE, conseguimos extrair valores específicos de um documento JSON. Por exemplo:

SELECT JSON_VALUE(po_doc, ‘$.address’) AS address

FROM j_order

WHERE id = 1;

Esse comando retorna o valor do campo address para o pedido com id = 1.

10. Trabalhando com Arrays JSON

O Oracle 21c suporta arrays JSON, permitindo que os dados semi-estruturados tenham múltiplos valores em uma única chave. Por exemplo, um campo phones pode armazenar múltiplos números. Manipular esses arrays com JSON_TRANSFORM facilita atualizações, adições ou remoções de elementos específicos.

11. Otimizando Consultas com Índices JSON

Para melhorar o desempenho, o Oracle permite a criação de índices em campos JSON. Isso é útil para consultas frequentes em grandes volumes de dados JSON. Com CREATE INDEX, podemos criar índices específicos para campos dentro de documentos JSON.

CREATE INDEX idx_address ON j_order (JSON_VALUE(po_doc, ‘$.address’));

Esse índice otimiza as consultas que buscam pelo campo address em po_doc.

12. Conclusão

O Oracle 21c oferece um conjunto completo de ferramentas para manipulação de dados JSON, permitindo a criação, atualização e consulta de dados semi-estruturados de maneira eficiente. Dominar essas funções, como JSON_TRANSFORM, JSON_VALUE e IS JSON, pode ser um diferencial em provas de concurso para a área de banco de dados, destacando-se como um conhecimento essencial para lidar com dados modernos no Oracle.


Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
Clique nos links abaixo:

Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente:

Por
3 min. de leitura