technical environment : Forms [32 Bit] Version 9.0.2.9.0 (Production), oracle JInitiator: Version
1.3.1.9, WebUtil Version 1.0.2(Beta), window xp service pack 2 build 2600, Internet Explorer 8

I created a form called read_web_file.fmb

this form has
a- block called METAR_BLOCK under which a text item called metar_code with initial values airport code (OLBA, LCLK )

b- block called Button under which a button PASS_VAUES is created and a procedure p993_GET_Qry_To_avia_weather has been called


After executing the following procedure an error is happened: ORA-06508 PL/SQL: could not find program unit being called.

PROCEDURE p993_GET_Qry_To_avia_weather
IS
l_http_request UTL_HTTP.req;
l_http_response UTL_HTTP.resp;
l_buffer_size NUMBER(10) := 512;
l_line_size NUMBER(10) := 70;
l_lines_count NUMBER(10) := 10;
l_string_request VARCHAR2(512);
l_url VARCHAR2(512);
l_line VARCHAR2(128);
l_raw_data RAW(512);
l_clob_response CLOB;

BEGIN
/*
send HTTP request depending on the html file structure fount at the url : http:/aviationweather.gov/adds/metars/ :
...
< FORM name="textForm" method="GET" action="">
<INPUT SIZE=14 NAME="station_ids" TYPE="text">
............
<INPUT NAME="submitmet" TYPE="submit" VALUE="Submit">
<INPUT TYPE="reset" VALUE="Reset FORM"></FORM>
....... ...
*/
l_url := 'http://aviationweather.gov/adds/metars?station_ids='||:METAR_BLOCK.metars;
l_http_request := UTL_HTTP.begin_request(url =>l_url ,method => 'GET');
UTL_HTTP.set_header(r => l_http_request, name => 'User-Agent', value => 'IE8');
UTL_HTTP.set_header(l_http_request, 'Host', 'aviationweather.gov');

l_http_response := UTL_HTTP.get_response(l_http_request);
DBMS_OUTPUT.put_line('Response> status_code: "' || l_http_response.status_code || '"');
DBMS_OUTPUT.put_line('Response> reason_phrase: "' ||l_http_response.reason_phrase || '"');
DBMS_OUTPUT.put_line('Response> http_version: "' ||l_http_response.http_version || '"');

BEGIN -- response block

<<response_loop>>
LOOP
UTL_HTTP.read_raw(l_http_response, l_raw_data, l_buffer_size);
l_clob_response := l_clob_response || UTL_RAW.cast_to_varchar2(l_raw_data);
END LOOP response_loop;

EXCEPTION
WHEN UTL_HTTP.end_of_body THEN
UTL_HTTP.end_response(l_http_response);
END; -- Response Block

DBMS_OUTPUT.put_line('Response> length: "' || LENGTH(l_clob_response) || '"');
DBMS_OUTPUT.put_line(CHR(10) || '=== Print first ' || l_lines_count || ' lines of HTTP response... ===' || CHR(10) || CHR(10));

<<print_response>>
FOR i IN 0..CEIL(LENGTH(l_clob_response) / l_line_size) - 1 LOOP
l_line := SUBSTR(l_clob_response, i * l_line_size + 1, l_line_size);
DBMS_OUTPUT.put_line('[' || LPAD(i, 2, '0') || ']: ' || SUBSTR(TRIM(l_line),1,50) || '...');
EXIT WHEN i > l_lines_count - 1;
END LOOP print_response;

IF l_http_request.private_hndl IS NOT NULL THEN
UTL_HTTP.end_request(l_http_request);
END IF;

IF l_http_response.private_hndl IS NOT NULL THEN
UTL_HTTP.end_response(l_http_response);
END IF;

I run my form in debug mode when the cursor arrive on the instruction: l_http_request := UTL_HTTP.begin_request(url =>l_url ,method => 'GET' ) or in any instruction which invoke a procedure or function in the package UTL_HTTP body i have got the mentioned error .

any one Can help me how I can using and wrap oracle supplied packages (just as utl_url or utl_http) through my own stored procedures and call them from my forms??

Thank you and i appreciate any support.

Last edited by Marmarino; 02/07/14 08:52 PM.