2014-06-06 29 views
0

我有以下Oracle更新查詢來設置計數和事件命中。即使傳遞錯誤,Oracle更新查詢也會將兩個值中的值設置爲true

update iam_counts 
    set count = count + 1, event_hit = :eventHit 
    where row_id = :rowId 

Count是號碼類型和event_hit是char類型(T或F)

該查詢是由交替地兩個方法調用。方法1事件命中false,方法2事件命中true。

在這兩種情況下,計應更新和事件擊中它應該被設置爲true像下面

  • 方法1調用 - 假
  • 方法2呼叫 - 真
  • 方法1個電話 - true ---->即使事件命中爲false,它也應該設置爲true

是否有像檢查或查詢這樣的功能來實現它。

+1

我不明白這個問題。將其設置爲true的條件是什麼?或者你想永遠把它設置爲真?那麼參數eventHit是做什麼的? – Thilo

+0

從方法1開始,事件命中將始終爲假,從方法2開始,它將爲真。例如,如果首先調用方法1,則count將爲1,並且事件命中將爲false,接下來的方法2,count將爲2,事件命中將爲true,然後如果再次調用方法1,它將事件命中爲false但不應該更新錯誤...而是它應該是真實的,因爲它是在分貝..........所以它總是不正確的。但一旦設置爲true,即使該方法來自方法1 – Hari

+0

,也不應將其設置爲false。因此,無論事件發生了什麼,您希望event_hit一旦設置爲true就保持true狀態? –

回答

0

你是正在尋找這樣的事情:如果是假的

update iam_counts 
set count = count + 1, 
event_hit = decode(event_hit, 'T', 'T', :eventHit) 
where row_id = :rowId 

event_hit將被更新,當它是真的,它會保持不變。

+0

太好了......正確的答案。我正在尋找這個......謝謝 – Hari

相關問題