【发布时间】:2016-12-23 19:15:52
【问题描述】:
有没有办法将 CLOB 数据转换为 LONG?它只是一个非常大的 XML 字符串。这是针对遗留系统的,不幸的是,我们目前无法摆脱 LONG。任何帮助,将不胜感激。我很好奇这是否可以通过 PL/SQL 完成,因为我们尝试过的方法涉及遍历 CLOB,但随后您会达到可变大小限制。谢谢
【问题讨论】:
-
可以分存吗?
有没有办法将 CLOB 数据转换为 LONG?它只是一个非常大的 XML 字符串。这是针对遗留系统的,不幸的是,我们目前无法摆脱 LONG。任何帮助,将不胜感激。我很好奇这是否可以通过 PL/SQL 完成,因为我们尝试过的方法涉及遍历 CLOB,但随后您会达到可变大小限制。谢谢
【问题讨论】:
有没有一种方法可以将 XML 字符串拆分为两列或更多列?我知道您不能离开 LONG,但也许您可以创建第二列并存储部分值(例如标题或一些外部 XML 标记)和原始列中的详细信息?这意味着该值存储在两列中(这并不理想)但它可以解决您的问题?
不是理想的解决方案,但它可以让您考虑替代方案。
【讨论】:
您不能将长度超过 32k 的字符串插入到 PL/SQL 中的长列中。您可以使用 Java、C、VB、C# 等编程语言来实现(有很多示例)。但是,long 列在 20 多年前被 Oracle 弃用(有充分的理由,因为它们有很多限制),您现在真的应该转换为 CLOB。没有任何理由将它们包含在您的数据库中——即使是旧的旧借口也是一个有争议的问题——尤其是在转换相对容易的情况下。
https://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_long_lob.htm#i1023103
【讨论】: