2016-11-10 4 views
0

Oracleストアドプロシージャからurlを呼び出したい。Oracleストアドプロシージャの '&' String 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; 
/

しかし、それは読むことができません「&」神託の文字列は、どのように私は、ストアドプロシージャにURLを呼び出すことになってんですか?

答えて

1

url encodingを使用できます。 2桁の16進数に続く%で危険なASCII文字を置き換え

URLエンコード。 &を同等の「安全」バージョン%26に置き換えることができます。

このように、あなたのURLが

'http://11.123.33.32:8002/Cool/value?car=Ferrari%26Home=California'

意味になるだろう、あなたは自分のコード内で1行を置き換える

req := UTL_HTTP.begin_request ('http://11.123.33.32:8002/Cool/value?car=Ferrari&Home=California');

は私がしました

req := UTL_HTTP.begin_request ('http://11.123.33.32:8002/Cool/value?car=Ferrari%26Home=California');

+0

私のコードにurlencodeを実装する方法 –

+0

@AmirRachmanあなたのコードの1行を、私が提供しているものに置き換えてください。例えば'req:= UTL_HTTP.begin_request( 'http://11.123.33.32:8002/Cool/value?car=Ferrari%26Home=California');' ... – Plirkee

0
set define off; 

あなたのコードブロックが&の問題を解決する前に、その後、全体をスクリプトとして実行します。

+0

なり置くこの行の上部にあるが、動作していないようだ –

+0

@AmirRachmanあなたはどのクライアントをあなたのコードを実行するために使用しますか? – Kacper

+0

現在、私はクライアントのためにトッドを使用しています –

関連する問題