操作系统:Kylin Linux AdvancedV10 SP3
数据库版本:DM Database Server 64 V8.--03134284404-20251110-301200-20164Pack13
sqlalchemy.exc.DatabaseError: (dmPython.DatabaseError) [CODE:-5402]参数个数不匹配
添加了主键uuid(随机生成一个字符串)后,开始间隔性出现此类报错,在未添加主键前数据都正常。现在数据大部分插入了,偶尔会报错这个。报错中又发现伴随sqlalchemy.exc.DatabaseError: (dmPython.DatabaseError) [CODE:-5403]参数不兼这个报错;
最新问题,之前批量插入定位不到具体数据,现在单条插入找到报错的sql,复制出来后手动可以执行成功。观察报错的数据发现并无异常数据如null,空字符串类似数据。
[CODE:-5402]参数个数不匹配
应用或手动传参值个数与SQL语句中的变量个数不一致。(比如你插入数据列为4个列,但是你传的值个数不是4个值。)
[CODE:-5403]参数不兼容
应用或手动传参的具体值与SQL中的变量类型不一致,也无法通过隐形转换。(比如你传入数据的列为数字类型,但是你给的值为汉字或者英文等)
处理思路:
找到报错SQL及传参值进行分析。确认应用中或手动执行的SQL哪里出现问题。
注:根据楼上链接开启sqllog日志记录,可以记录报错SQL及变量信息进行分析。
不是驱动问题吧。
去看看python当前框架下配置文件,比如:uwsgi.ini
加入参数:lazy-apps=true 即可解决。
最后定位是python使用的插件问题,最后解决方式绕开了这个插件相关使用。

通过视图v$runtime_err_history获取到报错的sql,拿到manager工具中手动执行一下看看,若参数是传的变量,那就得从sqllog中获取具体值了,sqllog开启方法可以参考以下文档
https://eco.dameng.com/document/dm/zh-cn/ops/performance-diagnosis#%E4%BA%94%E3%80%81%E8%B7%9F%E8%B8%AA%E6%97%A5%E5%BF%97%E8%AF%8A%E6%96%AD