PLSQL解析json列表:JSON Scanner异常

时间:2018-04-10 18:19:59

标签: json plsql

我正在解析json feed但是当我循环json_list时出现以下错误:

ORA-20100:JSON扫描程序异常@行:1列:33086 - 未找到字符串结尾

看着饲料,我找不到任何与众不同的东西。它开始让我想知道是否存在角色限制。

我的代码很简单......有相关部分:

 DECLARE
   a_list       json_list;
   v_list       clob;
   obj_         json;
   .....
 BEGIN
  ....
  req := utl_http.begin_request (v_url,'GET');
  res := utl_http.get_response (req);
  utl_http.read_text(res, v_list);
  a_list := json_list(v_list);
  for i in 1 .. a_list.count loop
    obj_         := json(a_list.get(i)); 

    val_source   := obj_.get('source');
    val_date     := obj_.get('date');

    el_source  := val_source.get_string;
    el_date    := val_date.get_string;
  end loop;
  ...
 END;

有什么我做错的吗?还是有任何提示?

1 个答案:

答案 0 :(得分:0)

我想通了......

我将数据读入缓冲区字符串,基本上通过块处理数据,然后将其附加到clob中。

 dbms_lob.createtemporary(p_res_clob, false);
 req := utl_http.begin_request (v_url,'GET');
 res := utl_http.get_response (req);

begin
  -- process the request and get the response:
  loop
    utl_http.read_text(res,l_buffer,32000);
    dbms_lob.writeappend(p_res_clob,length(l_buffer), l_buffer);
  end loop;
end;
a_list := json_list(v_list);
for i in 1 .. a_list.count loop
  obj_         := json(a_list.get(i)); 

  val_source   := obj_.get('source');
  val_date     := obj_.get('date');

  el_source  := val_source.get_string;
  el_date    := val_date.get_string;
end loop;
...
END;

希望这能帮助陷入困境的人:)