首先出现SQLCODE=-407,SQLSTATE=23502应该是更新Table的时候某个字段为NULL,但是Table那个表字段约束是不为NULL,导致出现的问题。
1.通过错误信息的“TBSPACED=2,TABLEID=-16895”,你可以通过查询SYSCAT.TABLES
获取Table的信息:
SELECT * FROM SYSCAT.TABLES WHERE TBSPACED = 2 AND TABLEID = -16895;
2.然后再根据刚刚查出来的TABNAME和错误信息中的COLNO=7查询SYSCAT.COLUMNS
,获取Table中相应的字段名称:
SELECT * FROM SYSCAT.COLUMNS WHERE TABNAME = 'OTC_CCY_OPTION_LEG' AND COLNO = 7;
3.最后根据查询找到对应的字段,发现确实有不为NULL的约束,代码传的却是NULL。修改相应代码成功解决问题。