無線&移動互聯網技術研發

          換位思考·····
          posts - 19, comments - 53, trackbacks - 0, articles - 283
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          java.sql.SQLException: '@P0' 附近有語法錯誤

          Posted on 2009-12-10 11:00 Gavin.lee 閱讀(3576) 評論(1)  編輯  收藏 所屬分類: JDBC
          SQL語句:
          String sql = "select top ? * from bbs_posts where p_fid=? order by p_addtime desc";
                  prepStmt 
          = conn.prepareStatement(sql);
                  prepStmt.setInt(
          1, xxx);
                  prepStmt.setInt(
          2, xx);
                  prepStmt.executeQuery()

          預編譯:
          Exception:
          java.sql.SQLException: '@P0' 附近有語法錯誤。
              at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:
          368)
              at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:
          2816)
              at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:
          2254)
              at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:
          631)
              at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:
          477)
              at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeQuery(JtdsPreparedStatement.java:
          777)
              at yixun.wap.db.DBConnection.executeQuery(DBConnection.java:
          41)
              at yixun.wap.bbs.dao.ForumDAO.get500WANforum(ForumDAO.java:
          282)
              at yixun.wap.bbs.BbsCache.get500WANforumCache(BbsCache.java:
          91)
              at yixun.wap.bbs.service.ForumBO.get500WANforum(ForumBO.java:
          143)
              at _jsp._page._bbs._space._second__jsp._jspService(_second__jsp.java:
          83)

          原因:sql不支持為select top ? 預編譯,換成動態拼接
          String sql = "select top %s * from bbs_posts where p_fid=? order by p_addtime desc";
                  sql 
          = String.format(sql, num);

          評論

          # re: java.sql.SQLException: '@P0' 附近有語法錯誤  回復  更多評論   

          2014-02-01 22:24 by 單獨
          你這樣在?號加個括號就行的了.
          String sql = "select top (?) * from bbs_posts where p_fid=(? )order by p_addtime desc";
          主站蜘蛛池模板: 蓬安县| 吕梁市| 浙江省| 马山县| 淳化县| 宣城市| 班玛县| 镇原县| 曲松县| 泾源县| 修武县| 昌吉市| 霍州市| 宁德市| 柘城县| 遵义县| 赤水市| 平陆县| 青冈县| 恩施市| 隆回县| 安吉县| 义乌市| 苗栗市| 绥芬河市| 时尚| 南皮县| 汶川县| 沅江市| 镇沅| 仁化县| 青川县| 赣榆县| 栾城县| 靖远县| 龙州县| 乐都县| 宣武区| 武夷山市| 通许县| 措美县|