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