库存单据引入过程遇到未知错误,必须声明表变量"@PKValue_udt2"问题排查原创
17人赞赏了该文章
638次浏览
编辑于2022年11月02日 17:54:57
一、【问题现象】
1、报错:引入过程遇到未知错误,必须声明表变量"@PKValue_udt2"问题排查
2、模板是从系统下载的,几百行的时候又能导入,5K行左右就导入不进去报错
二、【原因分析】
从报错堆栈看,报错方法为FillIDAndNumMapData,应该是基础资料匹配填充的出现报错。
调试数据发现:同样的批号,有些后面有空格结尾,有些没有空格结尾
看具体的报错日志:
引入的时候基础资料类型的数据会从库中匹配出对应的内码,存在系统的临时表中,临时表使用基础资料内码作为主键,当一个批号存在两种情况,空格结尾和非空格结尾,引入不进行去空格处理,sql匹配的时候不区分空格两种都匹配出同一个内码,导入插入临时表报错:插入重复的数据。
另外一次同类报错的排查,批号字段的编码有重复的造成(S字符既有全角也有半角)
总结:
引入过程遇到未知错误,必须声明表变量"@PKValue_udt2",对于这一类的报错,重点排查:
1、基础资料编码中英文符号问题(既有全角也有半角)
2、编码是否存在空格结尾
3、重点关注批号字段,大多数情况都是批号字段不规范导致引入报错
推荐阅读