【问题标题】:PL/SQL with JSON (list of object) parsing带有 JSON(对象列表)解析的 PL/SQL
【发布时间】:2017-02-08 07:01:53
【问题描述】:

由于我正在写作,所以有些东西我无法理解。我有以下缩进的 JSON 对象数据。我想在 Oracle 12 的 PL/SQL 中为每个“响应”检索与“行业”和“交换”相关的值。我已经安装了在论坛 https://github.com/pljson/pljson 中找到的 JSON 包。我找到的所有解决方案都没有缩进,所以我不确定这是否是无法访问信息的原因。任何可以帮助我的建议或文章将不胜感激。 提前致谢。

这是我的 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"
   }
}

这是我在此链接的论坛基础上找到的修改后的示例代码

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;

【问题讨论】:

标签: json oracle plsql


【解决方案1】:

我找到了解决方案。帖子中的链接需要作为数组括起来。在我的 varchar2 中,我必须在开头和结尾插入“[”符号。问题是,据我了解,如果它没有缩进,它只会解析 JSON。

然后我安装了 APEX5 包,它能够处理缩进代码。我按照https://www.youtube.com/watch?v=JGnkPVq7V98 的安装过程进行操作,第一次尝试它工作得很好。

希望有帮助

【讨论】:

    猜你喜欢
    • 2019-11-26
    • 2015-01-23
    • 2023-04-04
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2018-05-31
    相关资源
    最近更新 更多