2012-01-27 10 views

答えて

5

あなたはただそこ句でそれを置くことはできません:渡されたパラメータがnullの場合インクルードは、パラメータ

update myTable 
set myField1 = :param1 

環境のNULL値でそれを更新しませんか?

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

これにより、余分なDMLが回避されます。

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

をしかし、それはあなたがする必要がないときに本当に最適ではないである、同じにフィールドを更新します意味:別の方法としては、行うことができます。

+0

私はデコード機能が必要だと思っています ありがとう – geo

+1

@geo - 私は最初のバージョンをお勧めします。それ以外:param1と:paramは同じパラメータでなければなりません... – MatBailie

+0

@Dems、よく捕らえられます!私はそれを更新しました。私はgeoの選択によって、更新されている列が増えていると仮定していました。これは、2番目のクエリが正しいことを意味します... – Ben

関連する問題