问题:在组织间结算业务中,创建结算清单的时候经常遇到下面的报错提示,如下:
会计核算体系【财务会计核算体系】,将截断字符串或二进制数据。
语句已终止。 INSERT INTO T_IOS_CREATESETTLEBIZDATA (FUNIQUEID, FCONTEXTGUID, FFORMID, FCONFIGID, FUPDOWNCONFIGID, FFORMNAME, FENTRYID, FBIZID, FBIZBILLSEQ, FBIZBILLNO, FBIZDATE, FBIZBILLTYPEID, FOUTOWNERID, FINOWNERID, FTRANSFERBIZTYPE, FMATERIALID, FUNITID, FQTY, FBASEUNITID, FBASEQTY, FAUXPROPID, FBOMID, FLOT, FSTOCKID, FSTOCKLOCID, FMTONO, FOUTSTOCKORGID, FINSTOCKORGID, FVESTONWAY, FVESTONQTY, FVESTONBASEQTY, FNOTE, FTRANSFERDIRECT, FCREATEINDEFAULT, FCREATETYPE, FIOSITEMTYPE, FBIZPRICEUNITID, FBIZPRICEUNITQTY, FBILLISFREEGIFT, FISFREEGIFT, FBIZPRICE, FBIZTAXRATE, FBIZTAXPRICE, FBIZISTAX, FBIZCURRENCYID, FSOURCEKEY, FUPDOWNFORMID, FUPDOWNFID, FUPDOWNENTRYID, FISUPDOWNDATA, FACCTSYSTEMID, FACCTPOLICYID, FOUTDEPTID, FINDEPTID, FERPCLSID, FSTAFFID, FTOSTAFFID, F_ora_BGDH1, F_ora_BGFPH1)
原因:T_IOS_CREATESETTLEBIZDATA 该表为组织间结算中间表,用来承载相应结算单据数据的,这个报错的意思是某个字段的长度不够,单据上的字段长了;
解决办法:看语句后面的查询脚本, 即select后面的表名称,例如下图:
上图我们可以定位到查询的直接调拨单,那么肯定是直接调拨单某个字段的长度比中间表T_IOS_CREATESETTLEBIZDATA的字段更长,对比下俩个表的字段长度,先对比经常出现问题的字段,备注字段FNOTE、还有就是自定义字段,如上图中的F_ora_BGDH1, F_ora_BGFPH1,定位到俩个表具体长度不一样的字段后,修改T_IOS_CREATESETTLEBIZDATA表中对应字段的长度跟单据上字段长度保持一致即可以解决问题,数据库执行脚本修改长度,例如修改备份字段长度为1000,Alter table T_IOS_CREATESETTLEBIZDATA alter column FNOTE nvarchar(1000);
推荐阅读