UTL_HTTP read_text和read_raw应用

UTL_HTTP read_text和read_raw应用

response数据量小

read_line或者 read_text

示例:

 l_http_request   UTL_HTTP.REQ;

  l_http_response  UTL_HTTP.RESP;

   BUFFER  VARCHAR2(32767);

  l_response_clob  CLOB;

    xml XMLTYPE;

BEGIN

    ...

    l_http_response := UTL_HTTP.GET_RESPONSE(l_http_request);

   DBMS_LOB.CREATETEMPORARY(l_response_clob, TRUE, DBMS_LOB.CALL);

   DBMS_LOB.OPEN(l_response_clob, DBMS_LOB.LOB_READWRITE);

    BEGIN

    LOOP

       UTL_HTTP.READ_TEXT(l_http_response, BUFFER, 32767);

       DBMS_LOB.WRITEAPPEND(l_response_clob, LENGTH(BUFFER), BUFFER);

    END LOOP;

    EXCEPTION

       WHEN UTL_HTTP.END_OF_BODY THEN

          UTL_HTTP.END_RESPONSE(l_http_response);

    END;

   DBMS_LOB.CLOSE(l_response_clob);

    xml := XMLTYPE(l_response_clob);

    ... do whatever you need with XML docuemnt

   DBMS_LOB.FREETEMPORARY(l_response_clob);

END;

response数据量很大

建议使用read_raw

示例 

   dbms_lob.createtemporary( blob_buf, true );

    http_resp:= utl_http.get_response(http_req);

--

    begin

     loop

       utl_http.read_raw( http_resp, raw_buf );

       dbms_lob.append( blob_buf, raw_buf );

      end loop;

    exception

      when utl_http.END_OF_BODY

     then

       null;

    end;

    utl_http.end_response( http_resp );

--- 刘轶鹤

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值