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:
Participe da conversa