2013-09-27 34 views
2

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

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

任何人都可以建议有关WebAPI的情况,没有WSDL或DataContracts存在?在Oracle中创建POST以发送到WebAPI很简单吗,还是前者更好/更容易使用?

在此先感谢。

+0

您想将XML从您的服务中提取出来,对吗? – tbone

+0

XML不在Oracle中,而是作为计划作业而不是“拉”操作。我想更多'推'。 – EvilDr

+0

推它在哪里?为什么不在需要时将XML从您的服务中提取出来? – tbone

回答

2

这是很简单的,直接从Oracle调用Web服务:

  1. 有很好的支持XML/XSLT/XQuery的的建设要求和解析响应(XML DB

  2. 甲骨文有API来处理HTTP/HTTPS请求(UTL_HTTP package)。

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

更新 - 答案在评论

要清楚,上面的例子并不在“数据库查询级别”工作,因为它是在PL/SQL实现。 Oracle数据库引擎本身融入了两种不同的语言支持:

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

作为过程语言的PL/SQL可以访问由Oracle提供的丰富的一组API,作为一组built-in packages。除其他还有一些直接关系到网络通信协议和标准套餐:UTL_TCPUTL_URLUTL_SMTPUTL_MAILUTL_INADDRUTL_HTTPHTPHTFDBMS_LDAP

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

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

这个系统包中的大部分都是用Java实现的,可以通过write your own Java extensions callable from PL/SQL

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

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

+0

超级,谢谢。只是一个快速的; UTL_HTTP显然发生在数据库查询级别,但是是否有可能在应用程序堆栈上创建更高的功能以实现相同的功能,还是可以在已经记录的功能之上构建这种功能? – EvilDr

+1

@EvilDr我试着回答,但对于我来说不清楚你在找什么可能性。因此,如果我错过了观点,请查看更新后的答案并完善一个问题。 – ThinkJet

+0

惊人的更新,谢谢。我们的软件(ASP.NET)有两种“接受”通过HTTP发送的数据的方式,即WebAPI或WCF(WSDL)。我们的客户有责任改变他们的Oracle(等)实施方式,以利用我们选择的方法。因此,我想要了解的基本点是,在Oracle中通过WebApi发送数据还是发送到WCF(WSDL)更简单,还是没有关系,因为优秀的Oracle开发人员会对这两者都感到满意?我们只是试图让我们的客户生活变得简单。再次感谢,我非常感谢你的帮助。 – EvilDr