2015-11-08 41 views
-1

我想到了这个解决方案:从Web服务获取数据,插入表中,然后与其他表连接,但这会影响性能,此后,我必须删除所有这些数据。 还有其他方法可以做到这一点吗?如何通过一个sql表加入从Web服务返回的记录集

+0

你的问题太广泛了。 –

+0

可以通过更明确地说明应用程序使用哪些元素来改进问题。 – hardmath

回答

0

您不从Web服务返回记录集。 HTTP对你的数据库或结果集一无所知。

HTTP请求和响应是字符串。您必须解析出数据,将其转化为查询并对其进行处理。

性能很大程度上取决于诸如在WHERE子句中具有适当索引的列,查询的性质以及许多您在此未提供的细节。

这听起来像是“客户端与服务器”的经典案例。为什么不写一个存储过程来完成数据库服务器上的所有工作?您正在描述将大量数据带入中间层,操纵它,放回并删除它的许多工作?我会弄清楚如何让数据库做到这一点。

+0

对不起。我用“结果集”来表示信息/数据。我不知道“结果集”是指表格。 – A5300

+0

@ A5300:实际上,标题包含词组* *,它是许多数据库API中的表格式结构。您似乎对这个问题失去了兴趣,这需要缩小范围以帮助其他读者。如果你不打算改进它,也许你应该考虑自我删除(虽然没有有回报的答案)。 – hardmath

0

不,你并不需要保存任何东西到数据库中,有许多方法,以XML来表转换,但不保存到数据库

例如Oracle数据库可以使用的XMLTable /的XMLType/XQuery的/ dbms_xml 到XML结果转换从Web服务到表,然后在查询

例如使用它:

,如果你使用Oracle 12c中您可以使用JSON_QUERY:Oracle 12С JSON

的XMLTable:oracle-xmltable-tutorial

本周讨论有关converting xml into table data

0

是常见的考虑有一个三层结构的应用程序:用户界面,“商业逻辑” /中间件和后台数据管理。从Web服务中提取记录并(暂时)将它们插入到SQL数据库中的表中的想法具有一些优点,因为您希望执行的“连接”可以在SQL中快速实现。

Oracle(与其他SQL DBMS一样)功能temporary tables仅针对这些任务进行了优化。

但是,考虑到您对性能的担忧,这可能不是最好的方法。假设您的“中间件”层是使用Java编写的,并且给定了问题上的标签,并且没有任何明确的描述表明您可能正在尝试双层设计,其中用户界面程序直接与后端数据连接管理资源。

鉴于您对Oracle产品的明显投资,您可能会发现将Oracle Middleware元素合并到您的设计中是值得的。特别是Oracle Fusion Middleware承诺实现Web服务和数据库之间的“数据集成”。