• DM8:-7082:外部表数据错误


            本篇文章主要记录使用DM8过程中,遇到报错“-7082:外部表数据错误”的排查过程及解决办法。

    1.背景:

            开发商在本地windows环境进行系统开发,根据业务逻辑,会定时传输外部表到指定路径,使用完外部表之后进行删除。在该版本“DM Database Server 64 V8--03134283914-20220909-169171-20009 Pack1”的数据库下,查询外部表时,报“-7082:外部表数据错误”。

    报错语句:select  count(*)  from SYSBDA.EA;

    2.报错环境:

    操作系统windows 10 
    数据库版本DM Database Server 64 V8--03134283914-20220909-169171-20009 Pack1
    数据记录行数10w-100w

    3.定位问题

    1).排查数据编码和格式问题

            用户给表结构简单,测试数据也很少,很简单。初步排查与数据的编码和格式没有太大的关系。

    2). 同版本数据库不同环境

            因为担心是windows环境的问题,所以在windows执行了500-1000次的查询该表的语句。发现此版本的数据库在windows环境和linux环境执行相同SQL语句能稳定复现“-7082:外部表数据错误”。
             执行500次,有33次查询是返回该错误的,如下图:

    3.3 不同版本相同环境

            经过测试,使用如下安装包,执行查询外部表是没有报错的。因此在当时是建议用户降数据库版本进行系统开发,现在最新的版本已修复了该问题。

            测试数据库情况如下:

    dm8_20210910_x86_win_64_ent_8.1.2.70 没有问题
     dm8_20200907_x86_rh7_64_ent_8.1.1.126.iso   没有问题
    dm8_20220905_x86_win_64_ent_8.1.2.70_pack7没有问题
    dm8_20221027_x86_win_64_ent最新版没有问题 
    dm8_20220914_x86_rh6_64.iso有问题
    dm8_20220916_x86_win_64.iso有问题

            

     附录:

     windows cmd命令行实现循环执行200次查询达梦数据库示例:

    @(for /l %i in (1,1,200)  do (disql.exe -S  sysdba/SYSDBA -e "select count(1) cnt from SYSDBA.EA")) > EA2.log

    更多内容,请访问达梦社区地址:https:eco.dameng.com

  • 相关阅读:
    Docker进阶知识(深入浅出理解Docker)
    【MySQL事务_2_事务提交与回滚】
    BurpSuite爆破base64账号密码
    服务端架构演进史
    这个周期你会再次错过 OKR 的真正原因
    Web安全(文件上传的漏洞)
    通过代码加解析的方式带领大家分析 :数组与指针的关系
    SpringBoot autoconfigure
    保存图片测试
    了解 Oracle 中的视图
  • 原文地址:https://blog.csdn.net/Penrosee/article/details/127679738