有没有人成功地从 Oracle 存储过程访问 Web 服务?如果是,它是 Java 存储过程吗? PL/SQL 存储过程?
为什么我不应该尝试从存储过程访问 WS?
这是我目前找到的几个引用
..澄清一下,这是针对 SOAP 调用的
最佳答案
首先,您调用的是哪种网络服务?我假设 SOAP 或 REST。
对于 REST 网络服务,UTL_HTTP 通常绰绰有余,在一个简单的 PL/SQL 存储过程中结合一些 XPath。
对于 SOAP 网络服务,这取决于您需要(或希望)达到的复杂程度。您当然可以使用 XQuery 创建符合 Web 服务规范的 XML 文档,使用 UTL_HTTP 发布文档并获取响应,然后使用一些 XPath 来解析所有在 PL/SQL 中的响应。这是一个相对手动且相对蛮力的解决方案,但如果您谈论的是少数 Web 服务,它涉及最少的基础设施,并且可以很快将调用组合在一起。
如果您希望调用随着时间的推移而发展,或者您希望有许多过程调用许多 Web 服务,那么将时间投入到像 UTL_DBWS 这样的东西上可能是有意义的(虽然这不是什么,但你通常会在几个小时内开始工作)。
关于java - 从 Oracle 存储过程访问 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/299002/