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 );
--- 劉軼鶴
總結
以上是生活随笔為你收集整理的UTL_HTTP read_text和read_raw应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS回车符
- 下一篇: 戴尔7559 安装ubuntu16.04