将XML从Oracle发布到WebAPI

时间:2013-09-27 14:05:21

标签: oracle wcf asp.net-web-api

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

  1. XML / XSLT / XQuery很好地支持构建请求和解析响应(XML DB

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

  3. 因此,如果您决定从Oracle调用Web服务,那么SOAP和REST Web服务的可能性和相对简单性。
    您可以在StackOverflow上的this answer中找到示例代码。

    更新 - 回复评论

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

    这两件事真的不一样。即使在SQL和PL / SQL引擎之间切换上下文也会影响a common questions about performance,这主要是由于程序设计不当造成的。

    作为过程语言的PL / SQL可以访问由Oracle提供的一组built-in packages的丰富API。其中有许多与网络通信协议和标准直接相关的软件包:UTL_TCPUTL_URLUTL_SMTPUTL_MAILUTL_INADDR,{{1 },UTL_HTTPHTPHTF

    需要说明的是,有一组API可用于支持在Web上发布PL / SQL代码。一组DBMS_LDAP xxxx包supports access through mod_plsql。另一件事是a support for publishing SOAP web services in Oracle XML DB

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

    大多数系统软件包都是在Java上实现的,write your own Java extensions callable from PL/SQL可以实现。

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

    P.P.S。有些陈述可能稍微不准确或含有夸张,但这应足以理解整体情况。