2016-09-29 2 views
0

私が書いているので、私が理解できないことがあります。インデントされた次のJSONオブジェクトデータがあります。私は、Oracle 12のPL/SQLで "レスポンス"ごとに "業界"と "交換"に関連する値を取得したいと思います。フォーラムhttps://github.com/pljson/pljsonにあるJSONパッケージをインストールしました。私が見つけたすべてのソリューションはインデントされていないので、情報にアクセスできないという理由があるかどうかはわかりません。私を助けてくれる提案や記事は、大変に感謝しています。 ありがとうございます。JSON(オブジェクトのリスト)を使用したPL/SQL

これはこれは私が、私は解決策を見つけたこのリンク

Parse JSON into Oracle table using PL/SQL

create or replace procedure json4(w_periode in varchar2) is 
begin 
    DECLARE 
l_param_list  VARCHAR2(512); 
l_http_request UTL_HTTP.req; 
l_http_response UTL_HTTP.resp; 
l_response_text VARCHAR2(32767); 
l_list json_list; 
obj json := json(); 
arr json_list := json_list(); 


BEGIN 
-- service's input parameters 
-- ...set input parameters 
-- UTL_HTTP.write_text(l_http_request, l_param_list); 
l_response_text := '{"response": {"MSFT": {"meta": {"status": "ok"}, "results": {"industry": {"data": "Software - Infrastructure", "meta": {"status": "ok"}}, "exchange": {"data": "NASDAQ", "meta": {"status": "ok"}}}}, "AAPL": {"meta": {"status": "ok"}, "results": {"industry": {"data": "Consumer Electronics", "meta": {"status": "ok"}}, "exchange": {"data": "NASDAQ", "meta": {"status": "ok"}}}}}, "meta": {"status": "ok", "url": "http://testurl.com"}}'; 

/* -- get Response and obtain received value 
    l_http_response := UTL_HTTP.get_response(l_http_request);*/ 

/* UTL_HTTP.read_text(l_http_response, l_response_text); 
    */ 
    obj := json(l_response_text); 



    DBMS_OUTPUT.put_line(l_response_text); 
/* l_list := json_list(l_response_text);*/ 
/*arr := json_list(obj.get('industry'));*/ 

end; 
end json4; 
+0

はリンクの下を見て希望http://stackoverflow.com/questions/27122612/parse-json-into-oracle-table-using-pl-sql –

+0

これはまったく同じリンクです私は自分の質問に入れて、それは配列とオブジェクトリストを処理するだけのようだ。 –

答えて

0

上のフォーラムのベースに発見した修正されたサンプルコードである私のJSON文字列

{ 
    "response":{ 
     "MSFT":{ 
     "meta":{ 
      "status":"ok" 
     }, 
     "results":{ 
      "industry":{ 
       "data":"Software - Infrastructure", 
       "meta":{ 
        "status":"ok" 
       } 
      }, 
      "exchange":{ 
       "data":"NASDAQ", 
       "meta":{ 
        "status":"ok" 
       } 
      } 
     } 
     }, 
     "AAPL":{ 
     "meta":{ 
      "status":"ok" 
     }, 
     "results":{ 
      "industry":{ 
       "data":"Consumer Electronics", 
       "meta":{ 
        "status":"ok" 
       } 
      }, 
      "exchange":{ 
       "data":"NASDAQ", 
       "meta":{ 
        "status":"ok" 
       } 
      } 
     } 
     } 
    }, 
    "meta":{ 
     "status":"ok", 
     "url":"http://testdata.com/api/v3/companies/AAPL,MSFT/info/exchange,industry" 
    } 
} 

です。ポスト・ニーズのリンクは、配列としてブラケットにする必要があります。私のvarchar2では、最初と最後に "["記号を挿入する必要がありました。問題は、私の理解から、インデントされていない場合にのみJSONを解析することです。

次に、APEX5パッケージをインストールすると、インデントされたコードを処理できました。私はインストール手順https://www.youtube.com/watch?v=JGnkPVq7V98に従っており、最初は完全に動作します。

このヘルプ

関連する問題