数据库迁移并且升级后,部分SQL查询不到数据

从HP-UNIX把DB2数据库V10.1.0.3迁移到AIX 7.1,使用MYBATIS执行如下查询,在HP-UNIX和AIX 7.1上都能查到数据并且结果准确。然后在AXI 7.1上把DB2数据库从V10.1.0.3升级到V10.1.0.5,使用MYBATIS执行该SQL就查询不到数据,该SQL通过jdbc、控制台、DbVisualizer工具查询均能得到数...显示全部

从HP-UNIX把DB2数据库V10.1.0.3迁移到AIX 7.1,使用MYBATIS执行如下查询,在HP-UNIX和AIX 7.1上都能查到数据并且结果准确。

然后在AXI 7.1上把DB2数据库从V10.1.0.3升级到V10.1.0.5,使用MYBATIS执行该SQL就查询不到数据,该SQL通过jdbc、控制台、DbVisualizer工具查询均能得到数据并且结果正确。

该SQL为:

select * from ( select rownumber() over(ORDER BY M.ZQZUDM, B.JZLVDM, B.MNFXRQ) as rownumber_, B.ID ID, B.SECURITY_MAIN_ID SECURITY_MAIN_ID, M.ZQZUDM ZQDM, M.ZQMC ZQMC, B.ZQJC ZQJC, B.MZBZ BIZG, B.CSME CSME, B.FXXS FXXS, B.JFFXZJE JFFXZJE, B.XJFXZJE XJFXZJE, B.FXJ FXJ, B.CHQX_MONTH CHQX_MONTH, TRIM(B.FDLVBZ) FDLVBZ, B.JZLVDM JZLVDM, B.LC_PCENT LC_PCENT, B.JYBS_JJQJ JYBS_JJQJ, B.FXZL FXZL, B.FXJEGFFS FXJEGFFS, B.PMLV PMLV, B.QXRQ_DATE QXRQ_DATE, B.ZPRQ_DATE ZPRQ_DATE, B.DFRQ_DATE DFRQ_DATE, B.FXZQ_MONTH FXZQ_MONTH, B.JXFS JXFS, B.MNFXRQ MNFXRQ, B.ZQNQQQ ZQNQQQ, B.SFKZHZ SFKZHZ, B.SHRQ, B.HSRQ, B.SFXYGX, B.BZ_MEMO BZ_MEMO, B.LLBDRQ LLBDRQ, B.JBRY_CODE JBRY_CODE, B.JBRQ_DATE JBRQ_DATE, B.SHRY_CODE SHRY_CODE, B.SHRQ_DATE SHRQ_DATE, B.ZSR, B.FXJZLVLX, B.SFKFLKZZ, B.JXLX, B.CARC_TYPE, B.SFDXZWRZ, B.BJHZQDL, B.SYME, B.TIMESTAMP_U TIMESTAMP_U FROM SECURITY_BOND B, SECURITY_MAIN M WHERE B.TIMESTAMP_D IS NULL AND M.TIMESTAMP_D IS NULL AND B.SECURITY_MAIN_ID = M.ID and B.SECURITY_MAIN_ID like '%'||#{SECURITY_MAIN_ID}||'%'  ORDER BY M.ZQZUDM, B.JZLVDM, B.MNFXRQ ) as temp_ where rownumber_ <= 25 FOR READ ONLY WITH UR

经检查,发现查不到数据是由于B.SECURITY_MAIN_ID like '%'||#{SECURITY_MAIN_ID}||'%'谓词引起。

上面的'%'||#{SECURITY_MAIN_ID}||'%'实际内容为:B.SECURITY_MAIN_ID like '%201111131132312%'

如果在MYBATIS的配置文件中将 '%'||#{SECURITY_MAIN_ID}||'%'  改成  '%'||${SECURITY_MAIN_ID}||'%' 方式可以解决此问题。

请问,如何解决该问题。

收起
参与6

查看其它 1 个回答disizhishou的回答

disizhishoudisizhishou研发工程师IBM

MYBATIS把\'%\'||#{SECURITY_MAIN_ID}||\'%\'解释成别的内容了吧,可以搜集JCC trace或者从db2pd -d -dyn 里面看看MYBATIS提交的SQL到底是什么。

软件开发 · 2017-04-10
浏览1901

回答者

disizhishou
研发工程师IBM

disizhishou 最近回答过的问题

回答状态

  • 发布时间:2017-04-10
  • 关注会员:3 人
  • 回答浏览:1901
  • X社区推广