2010-05-25 2 views

ответ

3

К сожалению, нет. Позиционные параметры ('?') - это именно то, что определяется их положением или порядком появления в запросе. Если вы удалите «IDFOLDER =?», Вы будете назначать неправильные параметры для остальной части запроса и, возможно, получите исключение, так как число назначенных параметров не соответствует ожидаемому в запросе числу.

Я предполагаю, что вы не можете изменить исходный код, так как это самый простой маршрут - изменить SQL, а затем параметры JDBC для соответствия. Если вам нужно использовать одинаковое количество параметров, вы можете написать запрос таким образом, чтобы не изменять значение IDFOLDER, но использует первый параметр.

SET IDFOLDER=CASE ISNULL(?) WHEN 0 THEN IDFOLDER ELSE IDFOLDER END 

Если ваш драйвер JDBC поддерживает именованные параметры, это может дать вам более чистую альтернативу.

4

Нет, вы не можете. Вам необходимо условно вставить эту часть SQL в строку SQL, когда это необходимо.

4

Нет, вам придется написать второй запрос, который не включает столбец IDFOLDER. Все параметры должны быть связаны.

0

Javadoc прямо не сказать, что вы не можете, но когда я попробовал это, я получил исключение, как это:

java.sql.SQLException: Parameter not set 
Смежные вопросы