客户提上来一个问题。
看日志
Caused by:
java.sql.BatchUpdateException: ORA-12899: 列 "BS"."T_MOD_2"."C_COL_A" 的值太大 (实际值: 126, 最大值: 100)
看代码,数据流走过程是,由业务模块MOD_1将数据传到另一个模块MOD_2,在MOD_2中通过VO由T_MOD_1.C_COL_X传给T_MOD_2.C_COL_A。
查看T_MOD_1.C_COL_X字段Oracle定义长度200,T_MOD_2.C_COL_A为100,再确认当前记录T_MOD_1.C_COL_X实际字符长度为126。确定问题原因!
回头再看上面报错提示,ORA-12899: 这个说明是Oracle报出来的。hibernate VO映射文件对字符长度有定义,可在VO接收比该字段定义还要长的字符串,为什么没报错呢?求解惑