這篇文章主要介紹了Oracle MERGE INTO的用法,需要的朋友可以參考下
很多時(shí)候我們會(huì)出現(xiàn)如下情境,如果一條數(shù)據(jù)在表中已經(jīng)存在,對(duì)其做update,如果不存在,將新的數(shù)據(jù)插入.如果不使用Oracle提供的merge語法的話,可能先要上數(shù)據(jù)庫select查詢一下看是否存在,然后決定怎么操作,這樣的話需要寫更多的代碼,同時(shí)性能也不好,要來回?cái)?shù)據(jù)庫兩次.使用merge的話則可以一條SQL語句完成.
1)主要功能
提供有條件地更新和插入數(shù)據(jù)到數(shù)據(jù)庫表中
如果該行存在,執(zhí)行一個(gè)UPDATE操作,如果是一個(gè)新行,執(zhí)行INSERT操作
— 避免了分開更新
— 提高性能并易于使用
— 在數(shù)據(jù)倉庫應(yīng)用中十分有用
2)MERGE語句的語法如下:
代碼如下:
MERGE [hint] INTO [schema .] table [t_alias] USING [schema .]
{ table | view | subquery } [t_alias] ON ( condition )
WHEN MATCHED THEN merge_update_clause
WHEN NOT MATCHED THEN merge_insert_clause;
3)示例
代碼如下:
MERGE INTO TABLE TARGET
USING (SELECT '111111111' STORE_NO,
'2014-01' TARGET_YM,
'1' TARGET_D01,
'2' TARGET_D02,
'2' TARGET_D03,
'2' TARGET_D04,
'2' TARGET_D05,
'2' TARGET_D06,
'2' TARGET_D07,
'2' TARGET_D08,
'2' TARGET_D09,
'2' TARGET_D10,
'2' TARGET_D11,
'2' TARGET_D12,
'2' TARGET_D13,
'2' TARGET_D14,
'2' TARGET_D15,
'2' TARGET_D16,
'2' TARGET_D17,
'2' TARGET_D18,
'2' TARGET_D19,
'2' TARGET_D20,
'2' TARGET_D21,
'2' TARGET_D22,
'2' TARGET_D23,
'2' TARGET_D24,
'2' TARGET_D25,
'2' TARGET_D26,
'2' TARGET_D27,
'2' TARGET_D28,
'2' TARGET_D29,
'2' TARGET_D30,
'2' TARGET_D31,
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注