Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Analysieren Sie JSON mithilfe von PL/SQL in einer Oracle-Tabelle

Da diese Frage in den Ergebnissen hoch abschneidet, möchte ich diese bevorzugte Alternative posten:

Oracle hat APEX 5.0 veröffentlicht (15. April 2015). Damit erhalten Sie Zugriff auf eine großartige API, um mit JSON

zu arbeiten

Ich verwende es auf 11.2 und konnte jeden einzelnen Json knacken, von einfachen bis zu sehr komplexen Objekten mit mehreren Arrays und 4/5-Ebenen. APEX_JSON

Wenn Sie APEX nicht verwenden möchten. Installieren Sie einfach die Laufzeitumgebung, um Zugriff auf die API zu erhalten.

Beispielnutzung, Daten aus dem Beispiel von 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;

Ergebnis:PL/SQL-Block ausgeführt

S
Standard Generalized Markup Language
XML