2017-01-23 7 views
0

のOracle Database 12cのEnterprise Editionのリリース12.1.0.2.0 - 64ビットの生産PL/SQLプロシージャからhttp URLを取得する方法は?

私は30分ごとに手順をヒットする必要がOracleのジョブを作成しています、プロシージャ内

、私がヒットしたいですJavaプログラムが実行されるHTTP URL。

アプローチ:

declare 
req UTL_HTTP.REQ; 
BEGIN 
req := UTL_HTTP.BEGIN_REQUEST('http://dev.xxx.com/yyy/zzz/aaa/triggerJob'); 
dbms_output.put_line('hitting'); 
EXCEPTION 
WHEN UTL_HTTP.END_OF_BODY THEN 
    dbms_output.put_line('exception'); 
END; 

DBMS出力は

に当たっている - しかし、それは実際に当たっていません!これにより

アプローチ2

declare 
req UTL_HTTP.REQ; 
resp UTL_HTTP.RESP; 
BEGIN 
req := UTL_HTTP.BEGIN_REQUEST('http://dev.xxx.com/yyy/zzz/aaa/triggerJob'); 
UTL_HTTP.SET_HEADER(req, 'User-Agent', 'Mozilla/4.0'); 
resp := UTL_HTTP.GET_RESPONSE(req); 
UTL_HTTP.END_RESPONSE(resp); 
dbms_output.put_line('hitting'); 

EXCEPTION 
WHEN UTL_HTTP.END_OF_BODY THEN 
    dbms_output.put_line('exception'); 
END; 

実行しながら、私はエラーの下に取得しています。

enter image description here

+0

declare req UTL_HTTP.REQ; BEGIN req := UTL_HTTP.BEGIN_REQUEST('http://dev.xxx.com/yyy/zzz/aaa/triggerJob'); UTL_HTTP.SET_HEADER(req, 'User-Agent', 'Mozilla/4.0'); UTL_HTTP.GET_RESPONSE(req); dbms_output.put_line('hitting'); EXCEPTION WHEN UTL_HTTP.END_OF_BODY THEN dbms_output.put_line('exception'); END; 

もっと... HTTPヘッダーを設定するのですか?あなたは適切なアクセス権限を与えましたか? – APC

+0

@ APC Oracle Database 12c Enterprise Edition、すべての権限があります。読み取り/書き込み/更新/挿入とACLも同様です。 – user3676578

+0

おそらくあなたは、何らかの通常のWebサービスメカニズム、SOAPUIを介してURLにGETリクエストを送信することをテストしていますか? – APC

答えて

0

get_responseが実際にリクエストを実行するために追加することを検討してください。さもなければ、それだけ準備された;);別の良い習慣は、Oracleのバージョンを使用しているOracle documentation

+0

上記の更新された質問で、アプローチ2(あなたからの提案)を確認してください。 – user3676578

+0

これは別の質問を開く必要があることを意味します。最初の問題は解決です。これで、データベースがリモートサーバーにアクセスできるようにするために何かする必要があります(実際にhttpか、httpsですか?) –

+0

HTTP://要求です。 – user3676578

関連する問題