Aller au contenu principal
Page traduite

Cette page a été traduite de l'anglais avec l'aide de l'IA. En cas de divergence, la version anglaise fait référence.

JSON_PATCH

Applique un JSON MergePatch (RFC-7396) à un document JSON et le modifie selon les opérations indiquées. Cette fonction sert à ajouter, modifier ou supprimer des éléments dans des objets JSON, mais traite les tableaux JSON comme des unités atomiques.

Voir aussi :
[SELECT] [JSON_EXTRACT]


Syntaxe​

SELECT JSON_PATCH(target_json, patch_json) FROM <multipartIdentifier>;

Arguments​

target_json
Le document JSON auquel appliquer le patch.

patch_json
Un document JSON décrivant les modifications à appliquer selon l'algorithme MergePatch.

Valeur(s) renvoyée(s)​

Renvoie le document JSON modifié une fois le patch appliqué.


Exemples​

MergePatch simple​

-- Example: Simple merge of new elements into the target JSON object
SELECT JSON_PATCH('{"a":1,"b":2}', '{"c":3,"d":4}') AS patched_json;

Sortie : {"a":1,"b":2,"c":3,"d":4}

Remplacer un élément dans un tableau​

-- Example: Replacing an array with a single value in the JSON object
SELECT JSON_PATCH('{"a":[1,2],"b":2}', '{"a":9}') AS patched_json;

Sortie : {"a":9,"b":2}

Supprimer un élément à l'aide de null​

-- Example: Removing an element by setting it to null
SELECT JSON_PATCH('{"a":1,"b":2}', '{"a":9,"b":null,"c":8}') AS patched_json;

Sortie : {"a":9,"c":8}

MergePatch imbriqué​

-- Example: Nested merge patch updating sub-keys within a nested JSON object
SELECT JSON_PATCH('{"a":{"x":1,"y":2},"b":3}', '{"a":{"y":9},"c":8}') AS patched_json;

Sortie : {"a":{"x":1,"y":9},"b":3,"c":8}

Cette fonctionnalité permet des mises à jour souples et dynamiques de données JSON stockées dans une base de données, ce qui est particulièrement utile pour les applications qui nécessitent des modifications conditionnelles de structures de données.