SQL> update sfhc_sjwh_log t set t.changeid=t.changeid||substr(t.sendunit,1,1) where t.changeid='01702003070902933';
update sfhc_sjwh_log t set t.changeid=t.changeid||substr(t.sendunit,1,1) where t.changeid='01702003070902933'
ORA-01401: 插入的值对于列过大
字段的位数明明是够了的
因为你使用的是char类型,
所以changeid实际上后面都插入了空格填满23位,
然后连接1位,变成了24位,当然无法插入了。
将
update sfhc_sjwh_log t set t.changeid=t.changeid||substr(t.sendunit,1,1) where t.changeid='01702003070902933'
更改为
update sfhc_sjwh_log t set t.changeid=rtrim(t.changeid) ||substr(t.sendunit,1,1) where t.changeid='01702003070902933'
应该就可以了。