2

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

到目前为止,我已经为 UDT 表设置了一个示例,它工作得很好。它的性能比对批量数据的每个项目行进行插入调用要好得多,并且很想将其保留在那里,但是我不愿考虑不考虑关联数组。

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

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

您的帮助将不胜感激。

非常感谢

4

1 回答 1

2

从甲骨文方面,基于AskTom 上的这个问题

之间的主要区别:

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

是按表索引仅在 PLSQL 中可用,嵌套表/变量在 PLSQLSQL 中都可用。

按表索引更灵活一些,您可以预期性能会略有提高,但不太可能有很大的改进。如果您只是将数组用作将数据传递给 Oracle 的容器,则差异可能太微不足道而无法测量。

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

于 2011-01-05T15:42:49.973 回答