JSON no Oracle Autonomous Database

340 views 8:35 pm 0 Comments setembro 5, 2025

No mundo do desenvolvimento moderno, o JSON (JavaScript Object Notation) se tornou o padrão de fato para a troca de dados. Sua estrutura leve e flexível, que se assemelha à de objetos em linguagens de programação, o torna ideal para APIs, aplicativos móveis, sistemas de IoT e muito mais.

Tradicionalmente, trabalhar com JSON em bancos de dados relacionais exigia malabarismos, como armazenar os dados em colunas de texto e parseá-los manualmente na aplicação. No entanto, o Oracle Autonomous Database mudou esse jogo.

Ele oferece suporte nativo e robusto para o formato JSON, combinando a flexibilidade de um banco de dados de documentos com a segurança, o desempenho e os recursos de um banco de dados relacional de nível corporativo. Isso significa que você pode armazenar, consultar, indexar e analisar dados JSON diretamente, usando a familiaridade e o poder da linguagem SQL.

Neste artigo, vamos explorar como o Autonomous Database lida com JSON e, o mais importante, vamos colocar a mão na massa. Você aprenderá, na prática, a criar uma tabela com uma coluna JSON e a realizar as operações essenciais de CRUD (Create, Read, Update, Delete), desbloqueando todo o potencial de seus dados semi-estruturados.

Criando uma Tabela JSON e Inserindo Dados

No Oracle Autonomous Database, a maneira mais eficiente e recomendada de armazenar dados JSON é usando o tipo de dado JSON. Ao contrário de armazenar em uma coluna VARCHAR2 ou CLOB, o tipo JSON garante que o conteúdo seja válido e permite que o banco de dados otimize operações e valide a estrutura de forma nativa.

Vamos criar uma tabela simples chamada PRODUTOS_JSON para armazenar informações de produtos de uma loja virtual.

Passo 1: Criando a Tabela com uma Coluna JSON

Para criar a tabela, usamos a sintaxe SQL padrão, mas especificamos o tipo de dado JSON para a nossa coluna DETALHES_PRODUTO.

CREATE TABLE PRODUTOS_JSON(
   ID_PRODUTO      NUMBER PRIMARY KEY,
   SKU             VARCHAR2(50),
   DETALHES_PRODUTO JSON
);

Passo 2: Inserindo Dados JSON

A inserção de dados em uma coluna do tipo JSON é tão simples quanto em qualquer outra coluna. Você pode inserir uma string de texto formatada em JSON, e o banco de dados fará a validação automática para você. Se a string não for um JSON válido, a inserção falhará.

-- Inserindo um produto (Smartphone)
INSERT INTO PRODUTOS_JSON (ID_PRODUTO, SKU, DETALHES_PRODUTO)
VALUES
(1,'ELEC-SMART-001',
'{"nome": "Smartphone X", "categoria": "Eletrônicos", "preco": 1999.50, "disponivel": true, "caracteristicas": {"cor": "Preto", "memoria": "128GB"}}'
);

-- Inserindo outro produto (Tênis Esportivo)
INSERT INTO PRODUTOS_JSON (ID_PRODUTO, SKU, DETALHES_PRODUTO)
VALUES
(2,'CALC-TENIS-002',
'{"nome": "Tênis Esportivo Pro", "categoria": "Calçados", "preco": 350.00, "disponivel": false, "caracteristicas": {"tamanho": 42, "cor": "Azul", "material": "Tecido"}}'
);

Consultando Dados JSON (Operação READ)

Para consultar dados, você usará a cláusula WHERE e as funções SQL/JSON. As duas funções mais importantes são JSON_VALUE e JSON_QUERY.

1. Usando JSON_VALUE para Extrair Valores Simples

A função JSON_VALUE é ideal para extrair valores escalares (strings, números, booleanos) de um documento JSON.
Exemplo: Consultar o nome e o preço de todos os produtos.

SELECT
ID_PRODUTO,
    JSON_VALUE(DETALHES_PRODUTO, '$.nome') AS NOME_PRODUTO,
    JSON_VALUE(DETALHES_PRODUTO, '$.preco') AS PRECO_PRODUTO
FROM
PRODUTOS_JSON;

2. Usando JSON_QUERY para Extrair Objetos ou Arrays

A função JSON_QUERY é usada quando você precisa extrair um sub-objeto ou um array completo do documento JSON.
Exemplo: Extrair todas as características de um produto.

SELECT
ID_PRODUTO, JSON_QUERY(DETALHES_PRODUTO, '$.caracteristicas') AS CARACTERISTICA
FROM
PRODUTOS_JSON
WHERE ID_PRODUTO = 1;

Atualizando e Deletando Dados JSON

Para modificar valores dentro de um documento JSON, você usa a instrução UPDATE em conjunto com a função JSON_MERGEPATCH. Essa função é poderosa porque permite que você faça um “patch” no documento existente, alterando apenas os campos que você deseja.
Exemplo de UPDATE: Atualizar o status e preço de um produto.

UPDATE PRODUTOS_JSON 
SET DETALHES_PRODUTO = JSON_MERGEPATCH(DETALHES_PRODUTO,'{"disponivel": true, "preco": 399.90}')
WHERE ID_PRODUTO = 2;

Para remover um registro que contém um documento JSON, você usa a instrução DELETE da mesma forma que faria com qualquer outra tabela.
Exemplo de DELETE: Deletar produtos que não estão mais disponíveis.

DELETE FROM PRODUTOS_JSON
WHERE JSON_VALUE(DETALHES_PRODUTO, '$.disponivel') = 'false';

Vantagens de Usar JSON no Oracle Autonomous Database

Ao combinar a flexibilidade do JSON com a robustez e a inteligência do Autonomous Database, você obtém uma série de vantagens significativas que otimizam o desenvolvimento e a gestão dos seus dados.

  • Flexibilidade e Produtividade: Você pode adicionar novos campos aos seus documentos JSON sem precisar redesenhar o esquema da tabela. Isso acelera o ciclo de desenvolvimento, permitindo que você reaja mais rapidamente às necessidades do negócio.
  • Performance Inigualável: O Autonomous Database otimiza automaticamente o armazenamento e a consulta de dados JSON, garantindo que as consultas complexas rodem com a máxima eficiência, sem exigir esforço manual do seu time.
  • O Poder do SQL: Diferente de bancos de dados puramente NoSQL, o Autonomous Database permite que você use a familiar linguagem SQL para consultar seus dados JSON. Isso significa que você pode fazer joins entre dados JSON e tabelas relacionais, tudo em uma única plataforma.
  • Segurança e Confiabilidade: Você se beneficia de todos os recursos de segurança, alta disponibilidade e auto-reparo do Autonomous Database, garantindo que seus dados, sejam eles JSON ou relacionais, estejam sempre protegidos e online.

Para finalizar!

O Oracle Autonomous Database não é apenas um banco de dados relacional, mas uma plataforma completa e flexível para dados de todos os tipos. Ao aprender a criar tabelas, e a realizar operações de CRUD com o tipo de dado JSON, você viu como é fácil combinar a flexibilidade do JSON com o poder do SQL, tudo em um ambiente que se gerencia sozinho.

Essa integração nativa e inteligente elimina a complexidade, permitindo que desenvolvedores e DBAs se concentrem em construir soluções inovadoras, sem se preocuparem com a infraestrutura ou a performance. O futuro da gestão de dados é híbrido, e o Autonomous Database está pronto para essa realidade.

Te vejo no próximo post, tchau!