【发布时间】:2018-11-19 17:37:11
【问题描述】:
我需要在 Oracle VARCHAR 中插入超过 4000 个字符,并且有人建议我不要使用 CLOB。建议的解决方案是将其分成 2 列,每列 4000 列,8000 列应该足够了。我使代码动态化,因此可以处理 X 列以供重用。它运行良好,通过了测试等,直到它被部署并且有人从 Microsoft 产品中复制和粘贴它并且由于函数中生成了超过 4000 字节而损坏。我没有考虑过 unicode。
我尝试了几种想法来解决这个问题,然后才决定从 4000 个字符开始,如果字节长度超过 4000,删除一个字符并再次检查字节长度。它有效,但我想知道是否有更好的解决方案。该函数还将列名从“column”更改为“column1”、“column2”等。
text = data[key]
index = 1
while text:
length = 4000
while len(text[0:length].encode('utf-8')) > 4000:
length -= 1
data['{}{}'.format(key, index)] = text[0:length]
text = text[length:]
index += 1
del data[key]
【问题讨论】:
-
This question/answer 有一个与您类似的解决方案,但它可能还有一些您会觉得有用的其他功能