杨潇
骑士
骑士
  • UID150
  • 粉丝1
  • 关注0
  • 发帖数6
  • 社区居民
阅读:9844回复:0

Space is not allowed after parameter prefix ':' 错误解决

楼主#
更多 发布于:2019-09-17 17:04
1.出现场景
数据库为mysql的时候,为了能够在查询的时候,查询出相应的序号,使用了@rownum,具体的sql如下:
select
    C_AREACODE as CODE,
    C_AREANAME ID ,
     @rownum:=@rownum+1 as C_INDEX
from
    tab_omin_cm_cc_area,
    (select @rownum:=0) r
此时的sql语句是可以直接在navicat中进行执行,不会报错。但是把sql语句放到平台的mix文件以后,用程序来执行却会报以下错误:
Space is not allowed after parameter prefix ':'
....
2.出错原因
据说是hibernate4以下版本的问题(未验证)
3.解决方式
使用/*'*/:=/*'*/来替换掉 :=,例如:
select
    C_AREACODE as CODE,
    C_AREANAME ID ,
     @rownum/*'*/:=/*'*/@rownum+1 as C_INDEX
from
    tab_omin_cm_cc_area,
    (select @rownum/*'*/:=/*'*/0) r  
再执行,问题解决!

最新喜欢:

刘魁刘魁 何万里何万里
戒骄戒躁,再小的事情也要认真的对待!
游客

返回顶部