首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从oracle数据库通过post请求发送海量数据

从oracle数据库通过post请求发送海量数据
EN

Stack Overflow用户
提问于 2021-08-04 19:27:08
回答 1查看 311关注 0票数 0

我正在尝试使用UTL_HTTP通过来自Oracle的HTTP post请求发送数据。代码如下:

代码语言:javascript
运行
复制
REQ := UTL_HTTP.BEGIN_REQUEST(URL,'POST','HTTP/1.1')
UTL_HTTP.SET_HEADER(REQ,'USER-AGENT','MOZILLA/4.0')
UTL_HTTP.SET_HEADER(REQ,'CONENT-LENGT',LENGTH(V_BODY)
UTL_HTTP.SET_HEADER(REQ,'CONTENT-TYPE','APPLICATION/JSON')
UTL_HTTP.SET_HEADER(REQ,'SDATE','01/06/2021')

UTL_HTTP.WRITE_RAW(REQ,UTL_RAW.CAST_TO_RAW(V_BODY)
RES := UTL_HTTP.GET_RESPONSE(REQ);
UTL_HTTP.READ_TEXT(RES,BUFFER);

在V_BODY参数内部是一个存根,其中包含JSON和我从数据库中选择的这个json,然后放入一个存根中。现在,当选择的数据记录了大约50到100个请求时,请求工作得很好,但是我需要发送一百万条记录,当我尝试发送这样的请求时,当我将clob作为参数时,它会失败。它就像http请求一样,不允许我发送这么大的数据。处理这个问题的最好方法是什么,或者有没有办法以较小的块发送它?

EN

回答 1

Stack Overflow用户

发布于 2021-08-05 03:41:42

您可以使用标头来告诉目标,您将以块的形式发送数据。

代码语言:javascript
运行
复制
utl_http.set_header (l_request, 'Transfer-Encoding', 'chunked');

然后使用您喜欢的分割机制分批发送数据

代码语言:javascript
运行
复制
utl_http.write_raw(l_request, [first 32k]);
utl_http.write_raw(l_request, [next 32k]);

等等。

如果这不起作用,这可能是接收器的问题,因为并不是所有的web服务器都会愉快地接受分块请求。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68657018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档