2

我们公司正在创建一个 ASP.NET 服务来接受从 Oracle 等 ERP 系统发送的 XML 数据。我们(根本没有)使用 Oracle 的经验,所以请原谅这个问题的简单性。

我在网上看到 Oracle 有一个名为 JDeveloper 的工具,它可以连接到使用 DataContract/WSDL 相对轻松地发送/接收数据的WCF 服务。

任何人都可以就没有 WSDL 或 DataContracts 的 WebAPI 的情况提出建议吗?在 Oracle 中制作 POST 以发送到 WebAPI 是否简单,还是前一个选项更好/更容易使用?

提前致谢。

4

1 回答 1

2

直接从 Oracle 调用 Web 服务很简单:

  1. 对 XML/XSLT/XQuery 有很好的支持来构造请求和解析响应(XML DB

  2. Oracle 有一个 API 可以处理 HTTP/HTTPS 请求(UTL_HTTP)。

因此,如果您决定从 Oracle 调用 Web 服务 - 对于 SOAP 和 REST Web 服务来说,这是可能的并且相对简单。您可以在 StackOverflow 上的此答案
中找到示例代码。

更新 - 对评论的回答

为了清楚起见,上面的示例不适用于“数据库查询级别”,因为它是在 PL/SQL 上实现的。Oracle 数据库引擎原生支持两种不同的语言:

这两件事真的很不一样。甚至还有一个常见的问题是性能受到 SQL 和 PL/SQL 引擎之间切换上下文的影响,并且主要是由不正确的程序设计引起的。

PL/SQL 作为一种过程语言可以访问一组丰富的 API,这些 API 由 Oracle 作为一组内置包提供。其中有许多与网络通信协议和标准直接相关的包:UTL_TCP, UTL_URL, UTL_SMTP, UTL_MAIL, UTL_INADDR, UTL_HTTP, HTP, HTF, DBMS_LDAP.

需要说的是,有一套 API,用于支持在 Web 上发布 PL/SQL 代码。OWA_xxxx 软件包集支持通过mod_plsql. 另一件事是支持在 Oracle XML DB 中发布 SOAP Web 服务

DBMS_SCHEDULE如果您需要按计划将数据从 Oracle 卸载到 Web 服务,请查看DBMS_JOB包以定期启动卸载过程。

大多数系统包都在 Java 上实现,并且可以编写自己的 Java 扩展,可从 PL/SQL 调用

PS 有一个UTL_DBWS专门用于从 Oracle 数据库调用 SOAP 服务的包,但似乎它产生的问题多于解决的问题,而且我在 11g 文档(仅限 10g)中找不到对它的引用。

PPS 有些陈述可能有些不准确或有些夸张,但这应该足以理解整体情况。

于 2013-10-01T15:56:54.560 回答