苍穹升级脚本报错ORA-01441: cannot decrease column length because some value is too big

一、问题描述
苍穹升级脚本报错ORA-01441: cannot decrease column length because some value is too big
二、解决方法
1、查询具体表类型及长度
1) 查询具体库中表T_ER_REIMBURSEENTRY中列FTOCITYSTR类型为varchar(255)

2) 再检查此表中具体字段实际占用长度

综合上面结果,实际改为varchar(100)是不允许的,可以跳过,按下面步骤处理
2、根据日志记录慢慢往上找,找到这个部分升级的应用er

如图中样例次部分升级应用id为er
3、在这个数据中心对应的meta库中查询应用信息
select FENTRYID from T_BAS_DEPLOYINFOENTRY where FAPPID = 'er' order by fid desc;

其中‘er’为找到的应用id,找到最近一条执行记录的fentryId,如上查询得到fentryid=671048257861846038
4、在meta库表t_bas_deployinfodetail 中插入一条数据,将fentryid设置为前面查询到的fentryId,将ffilename设置为出错脚本名:
1) 插入操作前,需要获取表t_bas_deployinfodetail中其他字段值(FDETAILID、FENTRYID、FEXECTIME、FFILENAME)
FDETAILID:取表t_bas_deployinfodetail中此列最大值再+1即不会重复:
select max(to_number(fdetailid)) from t_bas_deployinfodetail 得到值为=1657182961348379649,插入值为1657182961348379649+1=1657182961348379650
2) FENTRYID:为前面查询得到值=671048257861846038
select FENTRYID from T_BAS_DEPLOYINFOENTRY wher
苍穹升级脚本报错ORA-01441: cannot decrease column length because some value is too big
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。




