可以在oracle表中定义多个NCLOB列吗?

时间:2012-07-18 06:44:37

标签: oracle

我必须在oracle数据库中存储多个可变长度的文本字段。我需要将它们定义为同一个表的列,以便在查询时能够对结果进行排序。

我无法知道字段内容的最大大小,其中大多数将少于100个字符,但可能会有数千个字符。此外,字段的数量会发生变化。

我正在考虑定义一个包含多个NCLOB列的表,这些列允许我在其中存储任何内容(非常短和非常长的文本)但是我想知道这是否是正确的设计。

要点:

  • 可变数量的字段(同一对象的元数据)
  • 内容的可变长度
  • 我需要订购结果

由于

KL

1 个答案:

答案 0 :(得分:1)

当您需要可变数量的字段时,最好将表拆分为父级和子级。然后,您可以有效地拥有任意数量的字段。您可以添加订单列来存储订购信息以订购结果。您可以通过连接两个表进行查询,并使用order by子句对结果进行排序。您还可以添加外键约束以确保关系和数据完整性。

在内容长度可变的情况下,您可以使用varchar2(或nvarchar2)来存储文本日期。 Varchar2可以容纳最多4000个字节的字符。如果您知道内容的最大长度可能超过4000个字节,则应使用CLOB(或NCLOB)。