["Sant Julià de Lòria"]
确实到了
["Sant Juli� de L�ria"]
PL / sql代码如下:
FUNCTION http_post_varchar( p_url VARCHAR2,p_request_body VARCHAR2 ) RETURN VARCHAR2AS req UTL_http.REQ; resp UTL_http.RESP; value VARCHAR2(32767); -- URL to post to v_url VARCHAR2(200) := p_url; -- Post Parameters v_param VARCHAR2(32767) := p_request_body; v_param_length NUMBER := length(v_param);BEGIN req := UTL_http.BEGIN_REQUEST (url=> v_url,method => 'POST'); UTL_http.SET_header (r => req,name => 'Content-Type',value => 'application/Json;charset=UTF-8'); UTL_http.SET_header (r => req,name => 'Content-Length',value => v_param_length); UTL_http.WRITE_TEXT (r => req,data => v_param); resp := UTL_http.GET_RESPONSE(req); LOOP UTL_http.READ_liNE(resp,value,TRUE); END LOOP; UTL_http.END_RESPONSE(resp); RETURN 'OK';EXCEPTION WHEN UTL_http.END_OF_BODY THEN UTL_http.END_RESPONSE(resp); RETURN 'OK';END http_post_varchar;解决方法 您应该将代码更改为:
UTL_http.SET_BODY_CHARSET('UTF-8');UTL_http.SET_header (r => req,value => LENGTHB(v_param));UTL_http.WRITE_RAW (r => req,data => UTL_RAW.CAST_TO_RAW(v_param));
由于UTF-8,LENGTHB为字节长度.否则计算的长度将为false,并且您在目标端出现错误(意外的输入结束或其他内容).
总结以上是内存溢出为你收集整理的oracle – PL / SQL:UTL_HTTP POST与UTF8字符串导致字符损坏全部内容,希望文章能够帮你解决oracle – PL / SQL:UTL_HTTP POST与UTF8字符串导致字符损坏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)