sql >> データベース >  >> RDS >> Oracle

PL/SQL を使用して JSON を Oracle テーブルに解析する

    この質問は結果のスコアが高いため、この推奨される代替案を投稿したいと思います:

    Oracle は APEX 5.0 をリリースしました (2015 年 4 月 15 日)。これにより、JSON を操作するための優れた API にアクセスできます

    私は11.2でそれを使用しており、単純なものから複数の配列と4/5レベルを持つ非常に複雑なオブジェクトまで、すべてのjsonをクランチすることができました. APEX_JSON

    APEXを使用したくない場合。 API にアクセスするには、ランタイム環境をインストールするだけです。

    使用例、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;
    

    結果:PL/SQLブロックが実行されました

    S
    Standard Generalized Markup Language
    XML
    


    1. 動的な数の引数を使用してMySQLストアド関数を作成します

    2. Mysql:訪問頻度を計算する

    3. MySQLデータベース/テーブル/列がどの文字セットであるかを確認するにはどうすればよいですか?

    4. mysqlを終了せずにmysqlコマンドラインツールで長いクエリを中断するにはどうすればよいですか?