关联数组与用于.NET / Oracle数据交换的UDT表

时间:2011-01-05 11:17:52

标签: c# .net oracle data-interchange

我需要在.NET(c#)应用程序和Oracle数据库之间传递批量数据。到目前为止,已有两种替代方案,即关联数组和用户定义数据类型表(UDT)

到目前为止,我已经为UDT表设置了一个示例,它非常好用。它的性能远远超过对批量数据的每个项目行进行插入调用,并且我很想留下它,但是我不愿意考虑关联数组。

一位同事告诉我,关联数组是一种语言结构,只能在Oracle的PL / SQL代码中识别,而不是纯SQL。鉴于我们鼓励我们的Oracle开发人员尽可能编写基于集合的SQL,因此选择UDT表似乎是自然的选择。

但是,我有兴趣了解这两种交换批量数据的方法之间的相对优势/劣势,以便我可以做出更明智(合理)的决定。

非常感谢您的帮助。

非常感谢

1 个答案:

答案 0 :(得分:2)

从Oracle方面,基于this question on AskTom

  

之间的主要区别:

     

(按表格索引)[=关联数组]和(嵌套   表/可变数组)

     

是表格的索引   可以在PLSQL中使用,嵌套   表/ varrays在两者中都是可用的   PLSQL SQL。

按表格分类的索引更灵活,您可以期待性能略有提高,但不太可能是一个巨大的改进。如果您只是将数组用作容器来将数据传递给Oracle,那么差异可能太小而无法衡量。

如果您打算使用SQL中的函数,则必须使用嵌套表。