Я пытаюсь выполнить SQL
запрос, используя базу данных Pentaho
в Derby
? Запрос очень прост. Он обновляет значение столбца для увеличения/уменьшения 1 на нем.
Когда я изменил запрос на это: UPDATE APP.PROCLOGS SET FAIL = 22 WHERE ID = ${pid}
, он работает нормально.
Итак, почему я не могу выполнить этот запрос, чтобы увеличить/уменьшить значение столбца?
С Уважением,
используйте знак вопроса, чтобы использовать имя поля в качестве аргумента:
UPDATE APP.PROCLOGS SET FAIL = ? WHERE ID = ${pid}
если вам нужно увеличить значение FAIL +1, сделайте это на предыдущем шаге. ? Заполнитель не может справиться с этой операцией.
Проверьте тип данных FAIL
. Если это числовой тип, например INT
, он должен работать, если вы установите FAIL = FAIL + 1
.
Если это не числовой тип, например, если это тип символьной строки, такой как VARCHAR
он не будет выполнен.
MY_STRING = MY_STRING + 1 ---doesn't make sense
Однако, если вы установите FAIL = 22
(если FAIL
является типом VARCHAR
), это будет работать, потому что 22
будет автоматически преобразован (передан) в представление VARCHAR