2012-05-24 1 views
1

Я пытаюсь узнать, как сделать PreparedStatement следующим образом:Почему я получаю синтаксическую ошибку с этим подготовленным заявлением?

createConnection(); 
conn.setAutoCommit(false); 
String sql = "SELECT MAX(?) FROM ?"; 
PreparedStatement stmt = conn.prepareStatement(sql); 

Однако, когда я попал в последнюю строку, она бросает java.sql.SQLSyntaxErrorException следующим образом:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "?" at line 1, column 20. 

I искали повсюду, но не могли найти причину для этого. Что я делаю не так? позже в коде, который я устанавливаю? параметры как значения полных строковых значений, но когда я отлаживаю, я никогда не дойду до этой точки. Он попадает в эту строку conn.prepareStatement и выдает исключение. Спасибо за помощь. Я не знаю, имеет ли это значение, но находится в базе данных дерби.

ответ

1

Подумайте о своем? пометьте как переменную sql. Вы не можете сделать MAX для переменной, это синтаксически неверно.

Вы не можете сделать следующее:

declare @myvar int 
select @myvar = 1 

SELECT MAX(@myvar) from SomeTable 
+0

Это имеет смысл. Большое спасибо за помощь! :) –

 Смежные вопросы

  • Нет связанных вопросов^_^