我有如下一個表:插入基於另一列的值(的Oracle 11g)
TABLE_1
{
Name varchar2(30)
Value_a number
Update_time timestamp
}
我想這取決於「value_a」的值的INSERT +合併過程中有條件地更新UPDATE_TIME的價值。如果value_a小於0.1,則檢查update_time是否爲空。如果是,那麼更新否則不。如果value_a大於0.1,則檢查update_time是否不爲空。如果是,則爲空。
我有一個我清楚的table_1_stage,然後插入所有數據,然後根據鍵匹配在表1中「合併或插入」。我正在使用oracle 11g。
我準備語句如下所示:" MERGE INTO " + TABLE_1 + " TABLE1 " + " USING TABLE_1_STAGE TABLE1S " + " ON (TABLE1.NAME = TABLE1S.NAME) " + " WHEN MATCHED THEN " + " UPDATE set VALUE_A = TABLE1S.VALUE_A " + " WHEN NOT MATCHED THEN " + " INSERT (NAME, VALUE_A) " + " VALUES (?, ?) "
的UPDATE_TIME列是新的,我需要設置/重置它取決於value_a。
我知道一個存儲過程可能是一個更好的調用,但我正在尋找是否可以在插入查詢中執行此操作?
這是插入或更新,並且您使用Oracle 11g或Oracle 10g。你能否認可你的問題,使之與你試圖達到的一致? – Ben
@Ben,完成!現在可以請你提出我能做些什麼? –