java - Oracle 数据库可以向 Servlet 发送请求吗?

标签 java database oracle servlets plsql

通常我们从浏览器发送请求,但我想知道数据库是否也可以做同样的事情。 假设我的服务器上有一个 servlet 和一个 Oracle 数据库。

是否有可能通过使用 Schedule 选项,数据库将能够向 servlet 发送请求?

最佳答案

使用UTL_HTTP

是的,您可以从 Oracle 数据库发送 HTTP 请求。这是一篇很好的博客文章,总结了如何使用 UTL_HTTP package 来做到这一点。 : https://oracle-base.com/articles/misc/utl_http-and-ssl

An example from the Oracle manual :

SET SERVEROUTPUT ON SIZE 40000

DECLARE
  req   UTL_HTTP.REQ;
  resp  UTL_HTTP.RESP;
  value VARCHAR2(1024);
BEGIN
  UTL_HTTP.SET_PROXY('proxy.my-company.com', 'corp.my-company.com');
  req := UTL_HTTP.BEGIN_REQUEST('http://www-hr.corp.my-company.com');
  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;

使用 Oracle AQ 的替代方案

如果你想要一些中间层,你也可以使用我个人认为更强大的 Oracle AQ: https://docs.oracle.com/database/121/ADQUE/aq_intro.htm

例如,使用 Oracle AQ,您可以绕过 HTTP 层并直接访问 Servlet 在内部调用的任何内容。

关于java - Oracle 数据库可以向 Servlet 发送请求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50328455/

相关文章:

java - JDBC/Spring - 执行 sql 查询以获得结果的迭代器

php - MySQL,全文搜索以显示最后更新的行

java - 处理多个插入的最佳方法

python - 保持数据库连接打开 - 好的做法吗?

java - 在客户端关闭后通过 SocketChannel 向客户端发送数据

java - 可以在同一应用程序中将 C++ 用作后端,将 Javafx 用作前端吗?

database - Oracle - 索引似乎不起作用。还是慢

sql - oracle查询查看数据类型列表

sql - Oracle 中的 NLS_LANG 参数

java - 无法填充 JComboBox