问题描述
我正在使用MS SQL查询数据库,出于某种原因我收到以下错误: com.microsoft.sqlserver.jdbc.SQLServerException:'@ P0'附近的语法不正确
即使这个P0在我的语法中不在任何地方......
I'm querying a DB using MS SQL and for some reason I get the following error: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '@P0'
even though this 'P0' isn't anywhere in my syntax...
我读过某人有同样的问题,但他们使用了存储proc,我没有使用的东西,所以我看不出他的解决方案对我有用。 (他的解决方案是关于在程序调用周围添加大括号{}。
I've read that someone has had a same issue but they were using a stored proc, something which I am not using so I don't see how his solution will work for me. (His solution being asomething about adding braces {} around the procedure call.
无论如何,下面我已经粘贴了相关的代码。真的希望有人可以帮我这个,得到非常沮丧。
Anyways, below I have pasted the relevant code. Really hope someone can help me with this, getting quite frustrated.
PreparedStatement stmt = null;
Connection conn = null;
String sqlQuery = "SELECT TOP ? \n"+
"z.bankAccountNo, \n"+
"z.statementNo, \n"+
"z.transactionDate, \n"+
"z.description, \n"+
"z.amount, \n"+
"z.guid \n"+
"FROM \n"+
"( \n"+
"select \n"+
"ROW_NUMBER() OVER (ORDER BY x.transactionDate, x.statementNo) AS RowNumber, \n"+
"x.transactionDate, \n"+
"x.statementNo, \n"+
"x.description, \n"+
"x.amount, \n"+
"x.bankAccountNo, \n"+
"x.guid \n"+
"FROM \n"+
"( \n"+
"SELECT \n"+
"a.bankAccountNo, \n"+
"a.statementNo, \n"+
"a.transactionDate, \n"+
"a.description, \n"+
"a.amount, \n"+
"a.guid \n"+
"FROM BankTransactions as a \n"+
"LEFT OUTER JOIN BankTransactionCategories as b \n"+
"ON a.category = b.categoryCode \n"+
"WHERE b.categoryCode is null \n"+
") as x \n"+
") as z \n"+
"WHERE (z.RowNumber >= ?)";
stmt = conn.prepareStatement(sqlQuery);
stmt.setInt(1, RowCountToDisplay);
stmt.setInt(2, StartIndex);
ResultSet rs = null;
try{
rs = stmt.executeQuery();
} catch (Exception Error){
System.out.println("Error: "+Error);
}
提前致谢!
推荐答案
如果传入变量,SQL Server要求您在 top
的参数周围放置括号:
SQL Server requires you to place parenthesis around the argument to top
if you pass in a variable:
SELECT TOP (?)
这篇关于MS SQL异常:'@ P0'附近的语法不正确的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!