2012-01-27 49 views

回答

5

你就不能把它放在那里where子句?

update myTable 
    set myField1 = :param1 
where :param1 is not null 

这将避免额外的DML。或者你可以这样做:

update myTable 
    set myField1 = decode(:param1, null, myField1, :param) 

但是,这意味着你将更新字段相同的,当你不必是不是真正的最佳。

+0

我认为解码功能是我需要的 谢谢 – geo 2012-01-27 12:16:50

+1

@geo - 我推荐第一个版本。除此之外:param1和:param应该是相同的参数... – MatBailie 2012-01-27 12:31:38

+0

@Dems,被抓住了!我已经更新了它。我认为geo的选择有更多的列正在更新,这意味着第二个查询是正确的... – Ben 2012-01-27 13:38:32

相关问题