我们在 Oracle 11g 中有一个带有 varchar2 列的表。我们使用专有的编程语言,该列被定义为字符串。我们最多可以在此列中存储 2000 个字符(4000 个字节)。现在的要求是该列需要存储超过 2000 个字符(实际上是无限字符)。出于维护原因,DBA 不喜欢 BLOB 或 LONG 数据类型。
我能想到的解决方案是从原始表中删除该列并为该列创建一个单独的表,然后将每个字符存储在一行中,以获得无限的字符。该表将与原始表连接以进行查询。
这个问题有更好的解决方案吗?
更新:专有编程语言允许定义字符串和 blob 类型的变量,没有 CLOB 选项。我理解给出的答复,但我不能接受 DBA。我知道偏离 BLOB 或 LONG 将是开发人员的噩梦,但仍然无法解决。
更新 2:如果我需要的最大值是 8000 个字符,我可以再添加 3 列,这样我将有 4 列,每列 2000 个字符,得到 8000 个字符。因此,当第一列已满时,值将溢出到下一列,依此类推。这种设计会有什么不好的副作用吗?请建议。