如何将大于32k的Oracle CLOB中的数据转换为LONG?

时间:2016-12-23 19:15:52

标签: c# sql oracle plsql

有没有办法让CLOB数据变成LONG?它只是一个非常大的XML字符串。这是遗留系统,遗憾的是我们目前无法远离LONG。任何帮助,将不胜感激。我很好奇这是否可以通过PL / SQL完成,因为我们尝试过的是迭代CLOB,然后是你的可变大小限制。感谢

2 个答案:

答案 0 :(得分:0)

有没有办法可以将XML字符串拆分成两列或更多列?我知道你不能远离LONG,但也许你可以创建第二列并存储部分值(例如标题或一些外部XML标记)和原始列中的详细信息?这意味着该值存储在两列中(这不是理想的),但它可以解决您的问题吗?

不是理想的解决方案,但它可以帮助您考虑替代方案。

答案 1 :(得分:-1)

您不能将长度超过32k的字符串插入PL / SQL中的长列。您可以使用Java,C,VB,C#等编程语言(有很多例子)。但是,20多年前Oracle已经弃用了 long 列(由于它们有很多限制,因此有充分的理由),您现在应该已经转换为CLOB了。没有任何理由在你的数据库中拥有它们 - 即使旧的遗产借口也没有实际意义 - 特别是因为转换相对容易。

https://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_long_lob.htm#i1023103