Oracle
 sql >> Base de données >  >> RDS >> Oracle

Analyser JSON dans la table Oracle à l'aide de PL/SQL

Étant donné que cette question obtient un score élevé dans les résultats, je souhaite publier cette alternative préférée :

Oracle a publié APEX 5.0 (15 avril 2015). Avec lui, vous avez accès à une excellente API pour travailler avec JSON

Je l'utilise sur 11.2 et j'ai pu analyser chaque json, des objets simples aux objets très complexes avec plusieurs tableaux et 4/5 niveaux. APEX_JSON

Si vous ne souhaitez pas utiliser APEX. Installez simplement l'environnement d'exécution pour accéder à l'API.

Exemple d'utilisation, données de exemple de json.org :

declare
    sample_json   varchar2 (32767)
        := '{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}';
begin
    apex_json.parse (sample_json);
    dbms_output.put_line (apex_json.get_varchar2 ('glossary.GlossDiv.title'));
    dbms_output.put_line (apex_json.get_varchar2 ('glossary.GlossDiv.GlossList.GlossEntry.GlossTerm'));
    dbms_output.put_line (apex_json.get_varchar2 ('glossary.GlossDiv.GlossList.GlossEntry.GlossDef.GlossSeeAlso[%d]', 2));
end;

Résultat :Bloc PL/SQL exécuté

S
Standard Generalized Markup Language
XML