我正在解析一个 json 提要,但是当我循环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;
我做错了什么吗?或者有什么提示吗?
我想通了....
我将数据读入缓冲区字符串,基本上按块处理数据,然后将其附加到 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;
希望这能帮助那些被难倒的人:)