UTL_HTTP raise ORA-29273 and 12547
Joao Vicente Aversa Novaes, May 21, 2020 - 1:22 pm UTC
Hi everybody!
I'm facing ORA-29273 and ORA-12547 using the above solution trying to upload files. The process executes WRITE_RAW some times before crashes with these errors. The file has 13 Mb. My Oracle version is 11.2.
I tried the same with apex_web_service.make_rest_request with the same results.
The difference between my code and this one is the headers I',m setting:
UTL_HTTP.SET_HEADER(vRhttp_req, 'Content-Disposition: form-data; name="file"; filename="' || pVfile || '"' );
UTL_HTTP.SET_HEADER(vRhttp_req, 'Content-Type', 'multipart/form-data; boundary="'gc0p4Jq0M2Yt08jU534c0p'"');
UTL_HTTP.SET_HEADER(vRhttp_req, 'file, '||pVfile); -- pVfile is the file's name
UTL_HTTP.SET_HEADER(vRhttp_req, 'Transfer-Encoding','chunked');
I've tried increase timeout, but it doesn't change anything in the result.
Any ideas?
Thanks.
May 22, 2020 - 12:10 am UTC
Timeout can also the property of the recipient not the sender. The recipient might be cancelling your transfer because it is taking too long. However, 13mb seems very small for that.
Try increasing your chunk size.
looks like error in your code
Vadym, September 08, 2021 - 8:49 am UTC
Looks like instead of
while (offset < req_length)
it is correct to write
while (offset <= req_length)
Best regards
September 09, 2021 - 5:37 am UTC
Thanks - updated.
But don't forget we said
Here is some *pseudo* code outlining the general approach
:-)
utl_http for curl -H -d switches
LKT, March 21, 2023 - 2:15 pm UTC
I have a requirement where I would like to use utl_http instead of curl -H -d switches using POST method.
I have to send data in the below format.
curl https:url \
-H "X-Version: 3" \
-d "api_key=xxx" \
-d "request_token=yyy" \
-d "checksum=zzz"
Can the above example displayed here can take care of my requirement? I have not used utl_http for POSTing. I dont want to call curl using extproc or java or dbms_scheduler or anything else if utl_http can be used.
April 06, 2023 - 7:06 am UTC
Multiple "-d" is synonymous with concenation hence
-d "api_key=xxx" \
-d "request_token=yyy" \
-d "checksum=zzz"
is the same as
"api_key=xxx&request_token=yyy&checksum=zzz" thus
UTL_HTTP.WRITE_text(l_request, 'api_key=xxx&request_token=yyy&checksum=zzz');
And -H is nominating the header, thus
-H "X-Version: 3"
maps to
UTL_HTTP.SET_HEADER(l_request, 'Content-Type', 'X-Version: 3');
using form-data need to uplod a csv file in pl/sql
chaithanya, November 20, 2023 - 12:30 pm UTC
Hi i am trying to upload a csv file in rest api using pl sql could you please help how to achieve it.
November 28, 2023 - 3:39 am UTC
Isn't that exactly what these answers are? ie, uploading a file (blob) to a service?