zoukankan      html  css  js  c++  java
  • 必须声明表变量 "@P0"

    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>

    修改后正常。

  • 相关阅读:
    使用curl传递cookie错误的问题
    P3P设置第三方cookie解决方案
    国内的在线编程学习网站
    十大在线编程学习网站
    CGI,FastCGI,PHP-CGI与PHP-FPM
    工具收藏
    初识docker
    PHP优化
    JS各种语法
    面试题 比较运算、去扩展名的多种方法、内存回收
  • 原文地址:https://www.cnblogs.com/legendjslc/p/7889204.html
Copyright © 2011-2022 走看看