我们在Oracle 11g中有一个带有varchar2列的表.我们使用专有的编程语言,其中该列被定义为字符串.最大可以在此列中存储2000个字符(4000字节).现在的要求是这样,列需要存储超过2000个字符(实际上是无限的字符).出于维护原因,DBA不喜欢BLOB或LONG数据类型.
我可以想到的解决方案是从原始表中删除此列,并为此列分离一个表,然后将每个字符存储在一行,以获得无限的字符.这个文件将与原始表格一起查询.
有什么更好的解决这个问题吗?
更新:专有的编程语言允许定义类型为string和blob的变量,CLOB没有选项.我理解了给出的响应,但是我不能接受DBA.我明白,偏离BLOB或LONG将是开发者的噩梦,但仍然无法帮助.
更新2:如果我需要的最大值是8000个字符,我可以再添加3个列,以便我将有4列与2000个字符,以获得8000个字符.因此,当第一列已满时,值将被溢出到下一列,依此类推.这种设计会有不良的副作用吗?请建议.
如果一个Blob是你需要说服你的dba,那就是你需要的.那些数据类型是出于某种原因,任何滚动您自己的实现将会比内置类型更差.
原文链接:https://www.f2er.com/oracle/204919.html另外你可能想看看CLOB型,因为它会很好地满足你的需要.