Estoy consultando un DB usando MS SQL y por alguna razón me sale el siguiente error: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '@P0'
aunque este 'P0' no está en ningún lugar de mi sintaxis ...Excepción de MS SQL: sintaxis incorrecta cerca de '@ P0'
He leído que alguien ha tenido el mismo problema pero que estaban usando un proceso almacenado, algo que no estoy usando, así que no veo cómo su solución funcionará para mí. (Su solución es asomething sobre la adición de llaves {} alrededor de la llamada a procedimiento.
De todas formas, a continuación He pegado el código en cuestión. Realmente espero que alguien me puede ayudar con esto, haciendo totalmente frustrado.
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);
}
Gracias ! de antemano
'@ P0' es el parámetro rowcounttodisplay –
¿Puede proporcionar SQL real que causa el error? Parece que no proporciona correctamente 'RowCountToDisplay' – VMAtm