Похоже, что один из вызовов REST, который вы делаете, приводит к ошибке на стороне сервера, а полученный ответ содержит страницу ошибки HTML вместо данных JSON.
Чтобы помочь вам определите, что вы получаете и какой вызов вызывает проблему, добавьте отладку в ваш код, например:
set serveroutput on
Declare
...
BEGIN
for r in (select id from SEC_OBJECT where id >1500)
loop
...
v_clob_post := apex_web_service.make_rest_request(p_url => 'http://myURL',p_http_method => 'POST'
,p_body => v_clob );
dbms_output.put_line('id ' || r.id || ' status ' || apex_web_service.g_status_code);
dbms_output.put_line(v_clob_post);
apex_json.parse(v_clob_post);
...
end loop;
end;
/
В зависимости от вашего клиента вам может потребоваться сделать что-то еще, чтобы увидеть результат; set serveroutput on
будет работать в SQL* Plus, SQLcl и SQL Developer (если запускаться как скрипт), последний также имеет меню «View-> Dbms Output», чтобы открыть другое окно, другие будут иметь свои собственные эквиваленты .
Вы можете уменьшить выход и сузить проблему, выполнив:
v_clob_post := ...
if apex_web_service.g_status_code != 200 then
dbms_output.put_line('id ' || r.id || ' status ' || apex_web_service.g_status_code);
dbms_output.put_line(v_clob_post);
else
apex_json.parse(v_clob_post);
end;
Надеемся, что статус и ответ скажут вам, почему это не понравилось, особенно v_clob
запрос.