Исключение MS SQL: неправильный синтаксис рядом с '@ P0'

Я запрашиваю БД с помощью MS SQL и по какой-то причине получаю следующую ошибку: com.microsoft.sqlserver.jdbc .SQLServerException: Неправильный синтаксис рядом с '@ P0' , хотя этот 'P0' нигде в моем синтаксисе ...

Я читал, что у кого-то была такая же проблема, но они использовали сохраненную процедуру , то, что я не использую, поэтому я не вижу, как его решение будет работать для меня. (Его решение заключалось в добавлении фигурных скобок {} вокруг вызова процедуры.

В любом случае, ниже я вставил соответствующий код. Очень надеюсь, что кто-то может мне с этим помочь, но это сильно разочаровывает.

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);
}

Заранее спасибо!

51
задан VMAtm 11 August 2011 в 23:30
поделиться