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

C# 用于.NET/Oracle数据交换的关联数组与UDT表,c#,.net,oracle,data-interchange,C#,.net,Oracle,Data Interchange,我需要在.NET(c#)应用程序和Oracle数据库之间传递大量数据。到目前为止,已经出现了两种备选方案,即关联数组和用户定义数据类型表(UDT) 到目前为止,我已经为UDT表建立了一个示例,它运行得非常好。它比对批量数据的每个项目行做一个插入调用要好得多,我很想把它放在那个位置,但是我不愿意考虑关联数组。 一位同事告诉我,关联数组是一种只有在Oracle上的PL/SQL代码中才能识别的语言构造,而不是纯SQL。我们鼓励Oracle开发人员尽可能编写基于集合的SQL,因此选择UDT表似乎是自然的

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

到目前为止,我已经为UDT表建立了一个示例,它运行得非常好。它比对批量数据的每个项目行做一个插入调用要好得多,我很想把它放在那个位置,但是我不愿意考虑关联数组。 一位同事告诉我,关联数组是一种只有在Oracle上的PL/SQL代码中才能识别的语言构造,而不是纯SQL。我们鼓励Oracle开发人员尽可能编写基于集合的SQL,因此选择UDT表似乎是自然的选择

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

非常感谢你的帮助


非常感谢Oracle方面,基于以下内容:

主要区别在于:

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

表的索引是唯一的 可在PLSQL中使用,嵌套 表/varray在这两种版本中都可用 PLSQL和SQL

按表索引更加灵活,您可以预期性能会略有提高,但这不太可能是一个巨大的改进。如果您只是将阵列用作向Oracle传递数据的容器,那么差异可能太小,无法测量

如果计划使用SQL中的函数,则必须使用嵌套表