Função SQL Oracle JSON_MERGEPATCH
Introdução
A função JSON_MERGEPATCH
no Oracle Database é usada para aplicar uma operação de mesclagem de patch a documentos JSON. Essa função permite combinar um documento JSON base com outro documento JSON que contém as alterações a serem aplicadas, resultando em um novo documento JSON que reflete essas mudanças.
Descrição da Função
A função JSON_MERGEPATCH
aplica um "patch" JSON a um documento JSON base. O patch é um documento JSON que descreve as alterações a serem aplicadas ao documento base.
A sintaxe básica da função é a seguinte:
JSON_MERGEPATCH(json_base, json_patch)
Onde:
json_base
é o documento JSON base ao qual o patch será aplicado.json_patch
é o documento JSON que contém as alterações a serem aplicadas.
Exemplos de Uso
Veja alguns exemplos práticos de como usar a função JSON_MERGEPATCH
:
Exemplo 1: Aplicando um Patch a um Documento JSON
-- Aplicando um patch a um documento JSON base
SELECT JSON_MERGEPATCH(
'{"name": "Alice", "age": 28, "city": "New York"}',
'{"age": 30, "city": "San Francisco"}'
) AS updated_json
FROM dual;
Resultado: {"name": "Alice", "age": 30, "city": "San Francisco"}
Exemplo 2: Adicionando Novos Campos
-- Adicionando novos campos com um patch
SELECT JSON_MERGEPATCH(
'{"name": "Bob", "age": 25}',
'{"city": "Los Angeles", "occupation": "Engineer"}'
) AS updated_json
FROM dual;
Resultado: {"name": "Bob", "age": 25, "city": "Los Angeles", "occupation": "Engineer"}
Exemplo 3: Removendo Campos com Patch
-- Removendo campos do documento JSON com um patch
SELECT JSON_MERGEPATCH(
'{"name": "Charlie", "age": 35, "city": "Chicago"}',
'{"age": null}'
) AS updated_json
FROM dual;
Resultado: {"name": "Charlie", "city": "Chicago"}
Considerações
Ao usar a função JSON_MERGEPATCH
, considere o impacto das alterações no documento JSON base. O patch pode sobrescrever valores existentes e adicionar novos campos, mas não pode remover campos que não estão presentes no patch.
Referências
Para mais detalhes sobre a função JSON_MERGEPATCH
, consulte a Documentação Oficial da Oracle.
0 Comments