项目中有需要给客户返回合同号,合同号必须唯一
数据由旧系统移植过来,新系统将数据不同产品中的合同号的最大值找出来,使用DB2中的Sequences管理
移植中第一版本Sequence初始化脚本如下:
int_NUM1 = 'db2 -x "select INT(SUBSTR(NUM,8,6) )FROM MSG_TABLE WHERE TYP='1' ODERBY INT(SUBSTR(NUM,8,6)) DESC FETCH FIRST 1 ROWS ONLY"'
db2 "alter sequecen SEQ_NUM1 restart with $int_NUM1"
问题来了,没有考虑到没有数据的情况,若移植过来,无该产品的数据,那么第一条select命令的结果就是空
第二条会变成
db2 "alter sequecen SEQ_NUM1 restart with "
所以就报错了。
那么使用第二版本Sequence初始化脚本