2

我通常对收藏本身的全部内容了解很多,但我没有得到一点。为什么要在数据库中存储集合(作为嵌套表和可变数组)?

我发现通常在编程语言中使用数组很有用,但我不明白它们在成为表格的一部分时有什么用处。难道一切都不能作为两个实体之间的简单关系来实现吗?

为什么/我应该在哪里使用嵌套表或数组作为表的一部分,它们有什么好处?

4

2 回答 2

3

作为长期废弃的品牌重塑活动的一部分,Oracle 开始支持数据库中的对象。Oracle8 被定位为一个 ORDBMS 而不仅仅是一个 RDBMS。然后拉里发现了互联网,他们将 Java 放入数据库中,并谨慎地将 Oracle8i 重新命名为 RDBMS。

尽管如此,SQL 类型仍然存在。他们是一件好事。正如您所说,数组是一种出色的编程设备,在 PL/SQL 中非常有用。在继承和多态中,我们可以构建可爱的 API。

但是,对于您的关键点:

“我不明白为什么要以这种方式将它们存储在数据库中”

正是如此。几乎没有充分的理由在数据库表定义中使用 SQL 类型。从理论上讲,它们可以用来定义域类型,但是语法太笨重,无法让它发挥作用。这对于将列定义为嵌套表来说是双倍的。这使得难以实施规范化和关系完整性。

我遇到了几个非常小众的案例,但它们不是核心数据库表。相反,它们是诸如日志表之类的实用程序。

于 2013-03-27T17:06:20.400 回答
0

尽管大多数表操作都可以使用连接来执行,但有时可变数组和嵌套表变得非常有用。我们曾经做过的一种情况是,将逗号分隔的字符串从 jdbc 发送到 pl/sql,然后使用函数将字符串转换为 varray,然后将其用于 IN 子句中的进一步操作。在这一点上,可变数组变得有用了。

这个链接提供了很好的解释...... http://www.indicthreads.com/9429/plsql-collections-associative-arrays-nested-tables-varray-collection-methods/

请享用 :)

于 2013-03-27T16:49:49.073 回答