我需要在.NET (c#)应用程序和Oracle数据库之间传递批量数据。到目前为止,已经出现了两种替代方案,即用户定义数据类型(UDT)的关联数组和表
到目前为止,我已经为UDT表建立了一个示例,它工作得非常好。它的性能比为批量数据的每个项目行进行insert调用要好得多,我很想把它留在那里,但是我不会考虑关联数组。
一位同事告诉我,关联数组是一种语言结构,只能在Oracle上的PL/SQL代码中识别,而不能被纯SQL识别。鉴于我们鼓励Oracle开发人员尽可能编写基于集合的SQL,因此选择UDT表似乎是自然而然的选择。
但是,我有兴趣更多地了解这两种交换批量数据的方法之间的相对优势/劣势,这样我就可以在未来做出更明智(和合理)的决定。
您的帮助我们将不胜感激。
非常感谢
发布于 2011-01-05 23:42:50
在Oracle端,基于this question on AskTom
之间的主要区别:
(按表索引)=关联数组和(嵌套表/变量)
是因为表的索引只在PLSQL中可用,嵌套表/变量在PLSQL和SQL中都可用。
表索引更加灵活,您可以预期性能会有小幅提高,但这不太可能是一个巨大的改进。如果只是将数组用作将数据传递给Oracle的容器,那么差异可能太小而无法测量。
如果您计划使用SQL中的函数,则必须使用嵌套表。
https://stackoverflow.com/questions/4603454
复制相似问题