问题
使用 NHibernate 插入实体,发生实体字段类型为 CLOB时 实体插入报错:ORA-01461
排查发现字段长度较短时没有该问题,但是内容超过某一限定长度后就会报错,怀疑长度在 2000 - 4000 时由于将字段类型识别为 LONG 导致。
解决方案
针对该问题暂定的解决方案,如果有更好的方案欢迎补充:
- 存储较长内容,使用
BLOB格式; - 存储为
CLOB格式,将内容长度固定补空格到4000+,避免被转换为LONG类型;string text = "test"; text = text.PadRight(4001, ' ');