sql >> Databasteknik >  >> RDS >> Oracle

Analysera JSON till Oracle-tabellen med PL/SQL

Eftersom denna fråga får höga resultat vill jag lägga upp detta föredragna alternativ:

Oracle har släppt APEX 5.0 (15 april 2015). Med den får du tillgång till ett fantastiskt API för att arbeta med JSON

Jag använder den på 11.2 och har kunnat knäcka varenda json, från enkla till mycket komplexa objekt med flera arrayer och 4/5 nivåer. APEX_JSON

Om du inte vill använda APEX. Installera helt enkelt runtime-miljön för att få tillgång till API:t.

Exempelanvändning, data från json.orgs exempel :

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;

Resultat:PL/SQL-block kört

S
Standard Generalized Markup Language
XML


  1. Fråga efter användare som inte tillhör en specifik grupp? (Ville använda UTOM men det verkar som att MySQL inte stöder det)

  2. Är det möjligt att lagra kommatecken istället för poäng för decimalfält i en PostgreSQL-databas?

  3. Konfigurera Django med MySQL på macOS

  4. Använda transaktionsomfång och fråga