日期:2014-05-16  浏览次数:21430 次

ORACLE中UTL_HTTP如何使用
用户通过WEB客户端查看数据,WEB服务端是用JAVA做的。用户查看数据时,如果表里数据发生变化,数据库需要通知WEB端,重新激活查询,这样用户就可以看到变化的数据。

现在的问题是如何通过数据库给WEB端发送通知,要发送什么内容,如何实现?

请大师们帮忙解决,谢谢了

最好能给个范例。。。

WEB端如何接收通知也是个问题。

------解决方案--------------------
例子:使用utl_http获取某个http页面内容
DECLARE
req utl_http.req;
resp utl_http.resp;
VALUE VARCHAR2(4000);
BEGIN
req := utl_http.begin_request('http://www.5ienet.com/online.asp');
utl_http.set_header(req, 'Content-Type', 'text/html; charset=gb2312');
resp := utl_http.get_response(req);
dbms_output.enable(1000000);
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;
/


------解决方案--------------------
UTL_HTTP的,我觉得关键在于组什么样的包,WEB端可以识别,对吧?
你能不能通过别的JAVA程序,往你的WEB端发个正常的包,用工具在WEB端截获一下,看看发过来的数据包,整体是什么样子的。肯定有包头包体两部分。
然后按照包头包体,在数据库端组个类似的包。

我在原来公司按照上述方法写过一段小代码,但是现在找不到了。

另外,用UTL_TCP不能实现么?必须是HTTP协议的么?