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

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:3

苍穹升级脚本报错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 where FAPPID = 'er' order by fid desc

3)     FEXECTIME:时间取当前时间插入即可
to_date(‘2023-04-06 16:05:00’,’YYYY-MM-DD HH24:MI:SS’)

FFILENAME:为升级脚本报错的名称:kd_er_1.5.155_table_er_tripreimbursebill.sql,插入截图如下:

5、commit提交,确认插入到meta下表记录无误,重新执行升级即可

6、本次语句整理如下:

select FENTRYID from T_BAS_DEPLOYINFOENTRY where FAPPID = 'er' order by fid desc;

select max(to_number(fdetailid)) from t_bas_deployinfodetail  --1657182961348379649;

 

insert into  t_bas_deployinfodetail values('1657182961348379650','671048257861846038','to_date('2023-04-06 16:05:00','YYYY-MM-DD HH24:MI:SS',' kd_er_1.5.155_table_er_tripreimbursebill.sql ');

苍穹升级脚本报错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、查询具...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息