为什么在Derby上从Pentaho执行带有递增/递减的SQL Update查询?

时间:2014-07-09 11:21:41

标签: java sql derby pentaho kettle

我试图在SQL数据库上使用Pentaho执行Derby查询? 查询非常简单。更新列的值以增加/减少1。

enter image description here

当我将查询修改为: UPDATE APP.PROCLOGS SET FAIL = 22 WHERE ID = ${pid}, 它工作正常。

那么为什么我无法执行此查询来增加/减少列的值?

此致

2 个答案:

答案 0 :(得分:3)

检查FAIL的数据类型。如果它是INT等数字类型,则设置FAIL = FAIL + 1时应该有效。

如果它不是数字类型,例如,如果它是VARCHAR之类的字符串类型,它将失败。

MY_STRING = MY_STRING + 1  ---doesn't make sense

但是,如果您设置FAIL = 22(假设FAILVARCHAR类型),这将有效,因为22将自动转换(强制转换)为{{ 1}}表示

答案 1 :(得分:0)

使用问号将字段名称用作参数:

UPDATE APP.PROCLOGS SET FAIL = ? WHERE ID = ${pid}

如果您需要增加失败值+1,请在上一步中执行此操作。的?占位符无法处理此操作。