Oracle MERGE INTO的用法示例介紹建站知識
導讀:1建站知識這篇文章主要介紹了Oracle MERGE INTO的用法,需要的朋友可以參考下建設網站網站優化seo培訓。
很多時候我們會出現如下情境,如果一條數據在表中已經存在,對其做update,如果不存在,將新的數據插入.如果不使用Oracle提供的merge語法的話,可能先要上數據庫select查詢一下看是否存在,然后決定怎么操作,這樣的話需要寫更多的代碼,同時性能也不好,要來回數據庫兩次.使用merge的話則可以一條SQL語句完成. 1)主要功能 提供有條件地更新和插入數據到數據庫表中 如果該行存在,執行一個UPDATE操作,如果是一個新行,執行INSERT操作 — 避免了分開更新 — 提高性能并易于使用 — 在數據倉庫應用中十分有用 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, 1 USER_ID FROM DUAL) TEMP ON (TARGET.STORE_NO = TEMP.STORE_NO AND TARGET.TARGET_YM = TEMP.TARGET_YM) WHEN MATCHED THEN UPDATE SET TARGET.TARGET_D01 = TEMP.TARGET_D01, TARGET.TARGET_D02 = TEMP.TARGET_D02, TARGE網站seo優化診斷工具T.TARGET_D03 = TEMP.TARGET_D03, TARGET.TARGET_D04 = TEMP.TARGET_D04, TARGET.TARGET_D05 = TEMP.TARGET_D05, TARGET.TARGET_D06 = TEMP.TARGET_D06, TARGET.TARGET_D07 = TEMP.TARGET_D07, TARGET.TARGET_D08 = TEMP.TARGET_D08, TARGET.TARGET_D09 = TEMP.TARGET_網站建設D09, TARGET.TARGET_D10 = TEMP.TARGET_D10, TARGET.TARGET_D11 = TEMP.TARGET_D11, TARGET.TARGET_D12 = TEMP.TARGET_D12, TARGET.TARGET_D13 = TEMP.TARGET_D13, TARGET.TARGET_D14 = TEMP.TARGET_D14, TARGET.TARGET_D15 = TEMP.TARGET_D15, TARGET.TARGET_D16 = TEMP.TARGET_D16, TARGET.TARGET_D17 = TEMP.TARGET_D17, TARGET.TARGET_D18 = TEMP.TARGET_D18, TARGET.TARGET_D19 = TEMP.TARGET_D19, TARGET.TARGET_D20 = TEMP.TARGET_D20, TARGET.TARGET_D21 = TEMP.TARGET_D21, TARGET.TARGET_D22 = TEMP.TARGET_D22, TARGET.TARGET_D23 = TEMP.TARGET_D23, TARGET.TARGET_D24 = TEMP.TARGET_D24, TARGET.TARGET_D25 = TEMP.TARGET_D25, TARGET.TARGET_D26 = TEMP.TARGET_D26, TARGET.TARGET_D27 = TEMP.TARGET_D27, TARGET.TARGET_D28 = TEMP.TARGET_D28, TARGET.TARGET_D29 = TEMP.TARGET_D29, TARGET.TARGET_D30 = TEMP.TARGET_D30, TARGET.TARGET_D31 = TEMP.TARGET_D31, TARGET.OPT_COUNTER = TARGET.OPT_COUNTER + 1, TARGET.UPDATE_BY = TEMP.USER_ID, TARGET.UPDATE_DATE = SYSDATE WHEN NOT MATCHED THEN INSERT VALUES (SEQ.NEXTVAL, TEMP.STORE_NO, TEMP.TARGET_YM, TEMP.TARGET_D01, TEMP.TARGET_D02, TEMP.TARGET_D03, TEMP.TARGET_D04, TEMP.TARGET_D05, TEMP.TARGET_D06, TEMP.TARGET_D07, TEMP.TARGET_D08, TEMP.TARGET_D09, TEMP.TARGET_D10, TEMP.TARGET_D11, TEMP.TARGET_D12, TEMP.TARGET_D13, TEMP.TARGET_D14, TEMP.TARGET_D15, TEMP.TARGET_D16, TEMP.TARGET_D17, TEMP.TARGET_D18, TEMP.TARGET_D19, TEMP.TARGET_D20, TEMP.TARGET_D21, TEMP.TARGET_D22, TEMP.TARGET_D23, TEMP.TARGET_D24, TEMP.TARGET_D25, TEMP.TARGET_D26, TEMP.TARGET_D27, TEMP.TARGET_D28, TEMP.TARGET_D29, TEMP.TARGET_D30, TEMP.TARGET_D31, NULL, DEFAULT, DEFAULT, NULL, TEMP.USER_ID, DEFAULT, NULL, NULL);
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-22 ,文章Oracle MERGE INTO的用法示例介紹建站知識主要講述示例,標簽,Oracle MERGE INTO的用法示例介紹網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_4799.html
