I am trying to use utl_http package. The anonymous block works fine, but it has problem when compile as a named function. Could you tell me why? I am using oracle9i and have DBA role. Please see script below:
--- following works in anonymous block in sqlplus
DECLARE
req Utl_Http.req;
resp Utl_Http.resp;
name VARCHAR2(256); -- Response header name
value VARCHAR2(1024); -- Response header value
line VARCHAR2(4000); -- Response body
BEGIN
req := Utl_Http.begin_request (' 'GET');
resp := utl_http.get_response(req);
dbms_output.put_line('HTTP response status code: ' || resp.status_code);
dbms_output.put_line('HTTP response reason phrase: ' || resp.reason_phrase);
utl_http.read_line( resp, line, true );
dbms_output.put_line(line);
utl_http.end_response(resp);
dbms_output.put_line('end');
end;
/
-- same as above, but following does not work in sqlplus:
CREATE OR REPLACE FUNCTION test_http
RETURN VARCHAR2
IS
req Utl_Http.req;
resp Utl_Http.resp;
name VARCHAR2(256); -- Response header name
value VARCHAR2(1024); -- Response header value
line VARCHAR2(4000); -- Response body
begin
req := Utl_Http.begin_request (' 'GET');
resp := utl_http.get_response(req);
dbms_output.put_line('HTTP response status code: ' || resp.status_code);
dbms_output.put_line('HTTP response reason phrase: ' || resp.reason_phrase);
utl_http.read_line( resp, line, true );
dbms_output.put_line(line);
utl_http.end_response(resp);
return line;
end;
/
Thank you
--- following works in anonymous block in sqlplus
DECLARE
req Utl_Http.req;
resp Utl_Http.resp;
name VARCHAR2(256); -- Response header name
value VARCHAR2(1024); -- Response header value
line VARCHAR2(4000); -- Response body
BEGIN
req := Utl_Http.begin_request (' 'GET');
resp := utl_http.get_response(req);
dbms_output.put_line('HTTP response status code: ' || resp.status_code);
dbms_output.put_line('HTTP response reason phrase: ' || resp.reason_phrase);
utl_http.read_line( resp, line, true );
dbms_output.put_line(line);
utl_http.end_response(resp);
dbms_output.put_line('end');
end;
/
-- same as above, but following does not work in sqlplus:
CREATE OR REPLACE FUNCTION test_http
RETURN VARCHAR2
IS
req Utl_Http.req;
resp Utl_Http.resp;
name VARCHAR2(256); -- Response header name
value VARCHAR2(1024); -- Response header value
line VARCHAR2(4000); -- Response body
begin
req := Utl_Http.begin_request (' 'GET');
resp := utl_http.get_response(req);
dbms_output.put_line('HTTP response status code: ' || resp.status_code);
dbms_output.put_line('HTTP response reason phrase: ' || resp.reason_phrase);
utl_http.read_line( resp, line, true );
dbms_output.put_line(line);
utl_http.end_response(resp);
return line;
end;
/
Thank you