Oracleº¯Êýmerge
°ÑÊý¾Ý´ÓÒ»¸ö±í¸´ÖƵ½ÁíÒ»¸ö±í£¬²åÈëÐÂÊý¾Ý»òÌæ»»µôÀÏÊý¾ÝÊÇÿһ¸öORACLE DBA¶¼»á¾³£Åöµ½µÄÎÊÌâ¡£ÔÚORACLE9iÒÔǰµÄÄê´ú£¬ÎÒÃÇÒªÏȲéÕÒÊÇ·ñ´æÔÚÀÏÊý¾Ý£¬Èç¹ûÓÐÓÃUPDATEÌæ»»£¬·ñÔòÓÃINSERTÓï¾ä²åÈ룬Æä¼äÉÙ²»ÁË»¹ÓÐһЩ±ê¼Ç±äÁ¿µÈµÈ£¬·±ËöµÄºÜ¡£ÏÖÔÚORACLE9iרΪÕâÖÖÇé¿öÌṩÁËMERGEÓï¾ä£¬Ê¹ÕâÒ»¹¤×÷±äµÃÒì³£ÇáËÉ£¬
MERGEÓï¾äÔÚ9iµÄÓï·¨ÈçÏ£º
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;
Àý£º
MERGE INTO tdest d
USING tsrc s ON (s.srckey = d.destkey)
WHEN MATCHED THEN
UPDATE SET d.destdata = d.destdata + s.srcdata
WHEN NOT MATCHED THEN
INSERT (destkey,destdata) VALUES (srckey,srcdata)
Ò»ÌõÓï¾ä´úÌæÁËÔÀ´µÄÒ»¶Î¸´ÔÓÓï¾ä£¬µ«ÊÇʹÓÃMERGEÒ²ÊÇÓÐҪעÒâµÄµØ·½µÄ£¬¿´ÏÂÃæµÄÀý×Ó£º
CREATE TABLE tdest(destkey KEYTYE,destdata DATATYPE);
CREATE TABLE tsrc(srckey KEYTYE,srcdata DATATYPE);
--insert some rows into tsrc here.
MERGE INTO tdest d
USING tsrc s ON (d.destkey = s.srckey)
WHEN MATCHED THEN
UPDATE SET d.destkey = s.srckey
WHEN NOT MATCHED THEN
INSERT (d.destkey,d.destdata) VALUES (s.srckey,s.srcdata);
ÔÚOracle 10gÖÐMERGEÓÐÈçÏÂһЩ¸Ä½ø£º
1¡¢UPDATE»òINSERT×Ó¾äÊÇ¿ÉÑ¡µÄ
2¡¢UPDATEºÍINSERT×Ó¾ä¿ÉÒÔ¼ÓWHERE×Ó¾ä
3¡¢ÔÚONÌõ¼þÖÐʹÓó£Á¿¹ýÂËν´ÊÀ´insertËùÓеÄÐе½Ä¿±ê±íÖÐ,²»ÐèÒªÁ¬½ÓÔ´±íºÍÄ¿±ê±í
4¡¢UPDATE×Ó¾äºóÃæ¿ÉÒÔ¸úDELETE×Ó¾äÀ´È¥³ýһЩ²»ÐèÒªµÄÐÐ
Ê×ÏÈ´´½¨Ê¾Àý±í£º
create table PRODUCTS
(
PRODUCT_ID INTEGER,
PRODUCT_NAME VARCHAR2(60),
CATEGORY VARCHAR2(60)
);
insert into PRODUCTS values (1501, 'VIVITAR 35MM', 'ELECTRNCS');
insert into PRODUCTS values (1502, 'OLYMPUS IS50', 'ELECTRNCS');
i
Ïà¹ØÎĵµ£º
OracleÖеĴ洢¹ý³ÌºÍÓαê:
select myFunc(²ÎÊý1,²ÎÊý2..) to dual; --¿ÉÒÔÖ´ÐÐһЩҵÎñÂß¼
Ò»:OracleÖеĺ¯ÊýÓë´æ´¢¹ý³ÌµÄÇø±ð:
A:º¯Êý±ØÐëÓзµ»ØÖµ,¶ø¹ý³ÌûÓÐ.
B:º¯Êý¿ÉÒÔµ¥¶ÀÖ´ÐÐ.¶ø¹ý³Ì±ØÐëͨ¹ýexecuteÖ´ÐÐ.
C:º¯Êý¿ÉÒÔǶÈëµ½SQLÓï¾äÖÐÖ´ÐÐ.¶ø¹ý³Ì²»ÐÐ.
ÆäʵÎÒÃÇ¿ÉÒÔ½«±È½Ï¸´ÔӵIJéѯд³Éº¯Êý.È»ºóµ½´æ´¢¹ý³Ì ......
ÒÔǰÓиöÏîÄ¿½«Óû§±í½¨Á¢ÔÚÁËsystemÓû§ËùÊôÏ£¬ºóÀ´·¢¾õΣº¦Ï൱´ó£¬×¼±¸½«±í¶ÔÏó×ªÒÆµ½Ð½¨Á¢µÄLANDÓû§Ï£¬Ã»ÕÒµ½Ö±½ÓµÄ°ì·¨£¬ÓÃÒÔϰ취µÃÒÔʵÏÖ£º
1¡¢½¨Á¢ÐµÄLANDÓû§£¬ÔÚ·þÎñÆ÷µÄOracle Enterprise ManagerÀï·ÖÅä ¶ÔÏóȨÏÞ £¬Ìí¼Ó¶ÔsystemÖÐÊý¾Ý±í¶ÔÏóµÄ select ȨÏÞ¡£
2¡¢ÒÔ LAND Óû§µÇ¼£¬Ê¹ÓÃÃüÁ ......
×î½ü·¢ÏÖÒ»¸ö±È½ÏÓÐÒâ˼µÄÎÊÌ⣺
µ±ÎÒÃÇÔÚÖ´ÐÐÒ»Ìõ²éѯÓï¾äʱ£¬Èç¹ûÌõ¼þν´ÊÖк¬Óк¯Êý£¬Èç abs(age)<10£¬´Ëʱ£¬Í¨¹ý²éѯ¼Æ»®¿´µ½µÄ½á¹û¼¯µÄ»ùÊýÖµÓëʵ¼ÊµÄÖµÏà²îºÜ´ó¡£µ±ÎÒÃǸıä²éѯÌõ¼þʱ£¬Èçabs(age)<20£¬ÕâʱµÄ»ùÊýÖµ²»»á¸Ä±ä£¬ºÍabs(age)<10µÃµ½µÄ»ùÊýÖµÒ»Ñù¡£
µ«ÏÖÔÚ»¹Ã»ÕÒµ½ÎÊÌâµÄÔÒò£¬searching... ......