Oradata

Oracle com JSON

Oracle com JSON

Olá tudo bom? (espero que sim!)

Neste artigo quero falar um pouco de uma novidade do Oracle 12c que é a integração com JSON. Uma novidade bastante interessante já que de uns tempos pra cá JSON tem ganhado cada vez mais força dentro das aplicações (principalmente porque causa dos dos bancos de dados NoSql).

Neste artigo vamos falar de uma maneira bem superficial, mais para entendermos como funciona, e nos próximos artigos iremos explorar este tema mais afundo.

Para começar, vamos criar uma tabela que contenha uma coluna para receber os seus valores no formato JSON. Neste caso você pode criar uma coluna VARCHAR2 comum e na sequencia colocar uma constraint nesta tabela informando que na referida coluna só podem ser inseridos registros no formato JSON.

Usaremos uma tabela que armazene informações de cursos por exemplo:

CREATE TABLE cursos_json (
cod_curso NUMBER NOT NULL,
informacoes VARCHAR2(4000)
CONSTRAINT ensure_json CHECK ( informacoes IS JSON )
);

Repare que a coluna “informações” é VARCHAR2(4000) e na sequencia criamos uma constraint do tipo CHECK que usa uma nova função “IS JSON” que basicamente verifica se determinado conteúdo está no formato JSON ou não.

Feito isso, agora você pode consultar uma nova view que contém os metadados das tabelas que usarem JSON veja:

SELECT * FROM USER_JSON_COLUMNS;

Agora como parte de nosso exercício vamos inserir alguns registros, repare que é muito simples, basta você colocar no seu insert uma informação no formato JSON.

INSERT INTO cursos_json (cod_curso, informacoes)
values
(1,
'{"Curso": "DBA-Essential",
"Nível": "Iniciante",
"Topicos": ["Instalacao","Configuracao","Manutencao", "Backup / Recover"]
}');

INSERT INTO cursos_json (cod_curso, informacoes)
values
(2,
'{"Curso": "Tuning DB / App",
"Nível": "Intermediario",
"Topicos": ["Tuning de SQL","Tuning de Instancia", "Tuning de SO"]
}');

Depois das linhas inseridas podemos agora consulta-las, execute um select comum na sua tabela e veja aí todos os registros inseridos com sucesso.

Gostaria de deixar um desafio aqui, se você reproduziu este conteúdo no seu ambiente de estudos tente inserir um registro que NÃO seja JSON na coluna INFORMACOES e veja o que acontece.

Por agora paramos no select e insert, prometo nos próximos artigos abordar outras atividades como update, delete entre outros, este é um novo recurso da versão 12c que eu particularmente gostei bastante e prometo divulgar aqui mais novidades, aguardem!

Forte abraço e até a próxima!

Douglas Paiva de Sousa

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *