tcl:将columnName动态传递给SQL更新查询

时间:2019-06-12 07:54:18

标签: oracle tcl dynamic-sql

我正在尝试将columnName传递给tcl sql更新查询。我知道我可以使用[list:取代Param $ itsValue]格式传递列的动态值,在该格式中我已经设置了变量itsValue的值,但是我无法使其与update一起使用。这是我正在尝试的:

set returncode [catch { SQL "UPDATE schemaName.TableName SET :columnName='u' WHERE key=$keyValue" [list columnName $attr ]} result]

在上面,我正在寻找的唯一解决方案是:完全有可能在何时以及我喜欢的地方传递columnName,以便我可以使用相同的sql查询来更新多个列(而不是同时进行更新)。

tcl version :8.4
database: Oracle 18c

1 个答案:

答案 0 :(得分:1)

我可能是错的,但我认为您只能在查询的 value 部分中使用参数

set returncode [catch {
    SQL "UPDATE schemaName.TableName SET $attr='u' WHERE key=:key" [list key $keyValue]
} result]