我试图在SQL
数据库上使用Pentaho
执行Derby
查询?
查询非常简单。更新列的值以增加/减少1。
当我将查询修改为:
UPDATE APP.PROCLOGS SET FAIL = 22 WHERE ID = ${pid}
,
它工作正常。
那么为什么我无法执行此查询来增加/减少列的值?
此致
答案 0 :(得分:3)
检查FAIL
的数据类型。如果它是INT
等数字类型,则设置FAIL = FAIL + 1
时应该有效。
如果它不是数字类型,例如,如果它是VARCHAR
之类的字符串类型,它将失败。
MY_STRING = MY_STRING + 1 ---doesn't make sense
但是,如果您设置FAIL = 22
(假设FAIL
是VARCHAR
类型),这将有效,因为22
将自动转换(强制转换)为{{ 1}}表示
答案 1 :(得分:0)
使用问号将字段名称用作参数:
UPDATE APP.PROCLOGS SET FAIL = ? WHERE ID = ${pid}
如果您需要增加失败值+1,请在上一步中执行此操作。的?占位符无法处理此操作。