码迷,mamicode.com
首页 > 其他好文 > 详细

必须声明表变量 "@P0"

时间:2017-11-24 15:01:37      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:number   llb   row   and   test   result   sel   port   limit   

mybatis提示错误

### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明表变量 "@P0"。
; uncategorized SQLException for SQL []; SQL state [S0001]; error code [1087]; 必须声明表变量 "@P0"。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明表变量 "@P0"。
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:447)

原因是SQL语句中表名作为一个变量,必须写成${tableName}, 而不是写成#{tableName}作为一个参数。

    <select id="queryList" resultType="Map" databaseId="sqlserver">
        SELECT * FROM
        (
        SELECT
                D.*, ROW_NUMBER () OVER (ORDER BY TmStamp DESC) RN
        FROM
                ${tableName} D
        ) T
        <if test="limit!=null and offset!=null">
            WHERE RN&lt;=#{limit}+#{offset} AND RN&gt;#{offset}
        </if>
    </select>

修改后正常。

必须声明表变量 "@P0"

标签:number   llb   row   and   test   result   sel   port   limit   

原文地址:http://www.cnblogs.com/legendjslc/p/7889204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!