我想从Oracle存储过程调用url。
/* Formatted on 11/10/2016 19:04:58 (QP5 v5.185.11230.41888) */
DECLARE
req UTL_HTTP.req;
resp UTL_HTTP.resp;
VALUE VARCHAR2 (1024);
BEGIN
req := UTL_HTTP.begin_request ('http://11.123.33.32:8002/Cool/value?car=Ferrari&Home=California');
UTL_HTTP.set_header (req, 'User-Agent', 'Mozilla/4.0');
resp := UTL_HTTP.get_response (req);
LOOP
UTL_HTTP.read_line (resp, VALUE, TRUE);
DBMS_OUTPUT.put_line (VALUE);
END LOOP;
UTL_HTTP.end_response (resp);
EXCEPTION
WHEN UTL_HTTP.end_of_body
THEN
UTL_HTTP.end_response (resp);
END;
/
但它无法阅读'&' oracle上的字符串,我应该如何调用存储过程中的URL?
答案 0 :(得分:1)
您可以使用url encoding。
网址编码用<div *ngIf="isLoading">Getting data....</div>
<div let displayData of data>
<p> {{ displayData.id }}</p>
</div>
后跟两个十六进制数字替换不安全的ASCII字符。
因此,您可以将%
替换为等效的'安全'版本&
。
因此,您的网址将变为
%26
意思是,您只需在代码中替换1行
'http://11.123.33.32:8002/Cool/value?car=Ferrari%26Home=California'
成为
req := UTL_HTTP.begin_request ('http://11.123.33.32:8002/Cool/value?car=Ferrari&Home=California');
答案 1 :(得分:0)
set define off;
在您的代码块解决问题时应该阅读&
。然后执行整个脚本。