问题

使用 NHibernate 插入实体,发生实体字段类型为 CLOB时 实体插入报错:ORA-01461

排查发现字段长度较短时没有该问题,但是内容超过某一限定长度后就会报错,怀疑长度在 2000 - 4000 时由于将字段类型识别为 LONG 导致。

解决方案

针对该问题暂定的解决方案,如果有更好的方案欢迎补充:

  • 存储较长内容,使用 BLOB 格式;
  • 存储为 CLOB 格式,将内容长度固定补空格到 4000+,避免被转换为 LONG 类型;
    string text = "test";
    text = text.PadRight(4001, ' ');
    

盈月舞清风,华灯自摇曳。