oracle merge into Ó÷¨Ïê½â
oracle merge into Ó÷¨Ïê½â
2009-07-31 10:14
Oracle9iÒýÈëÁËMERGEÃüÁî,ÄãÄܹ»ÔÚÒ»¸öSQLÓï¾äÖжÔÒ»¸ö±íͬʱִÐÐinsertsºÍupdates²Ù×÷. MERGEÃüÁî´ÓÒ»¸ö»ò¶à¸öÊý¾ÝÔ´ÖÐÑ¡ÔñÐÐÀ´updating»òinsertingµ½Ò»¸ö»ò¶à¸ö±í.
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');
insert into PRODUCTS values (1600, 'PLAY GYM', 'TOYS');
insert into PRODUCTS values (1601, 'LAMAZE', 'TOYS');
insert into PRODUCTS values (1666, 'HARRY POTTER', 'DVD');
commit;
create table NEWPRODUCTS
(
PRODUCT_ID INTEGER,
PRODUCT_NAME VARCHAR2(60),
CATEGORY VARCHAR2(60)
);
insert into NEWPRODUCTS values (1502, 'OLYMPUS CAMERA', 'ELECTRNCS');
insert into NEWPRODUCTS values (1601, 'LAMAZE', 'TOYS');
insert into NEWPRODUCTS values (1666, 'HARRY POTTER', 'TOYS');
insert into NEWPRODUCTS values (1700, 'WAIT INTERFACE', 'BOOKS');
commit;
1¡¢¿ÉÊ¡ÂÔµÄUPDATE»òINSERT×Ó¾ä
ÔÚOracle 9i, MERGEÓï¾äÒªÇóÄã±ØÐëͬʱָ¶¨INSERTºÍUPDATE×Ó¾ä.¶øÔÚOracle 10g, Äã¿ÉÒÔÊ¡ÂÔUPDATE»òINSERT×Ó¾äÖеÄÒ»¸ö. ÏÂÃæµÄÀý×Ó¸ù¾Ý±íNEWPRODUCTSµÄPRODUCT_ID×Ö¶ÎÊÇ·ñÆ¥ÅäÀ´updates±íPRODUCTSµÄÐÅÏ¢:
SQL> MERGE INTO products p
2 USING newproducts np
3 ON (p.product_id =
Ïà¹ØÎĵµ£º
How to land your dream Oracle DBA job
By Don Burleson, Contributor
14 Jan 2010
If you look at the Help Wanted ads, some Oracle DBA jobs look very appealing, with salaries that rival those of engineers and other professionals. Some have starting salaries as high as $85,000, with senior Orac ......
ORACLEÊý¾Ý¿âͨ¹ýsqlnet.oraÎļþÖеIJÎÊýsqlnet.authentication_services,²ÎÊýÎļþÖеÄremote_login_passwordfileºÍ¿ÚÁîÎļþpwdsid.oraÈýÕßÐͬ×÷ÓÃʵÏÖÉí·ÝÈÏÖ¤.
Sqlnet.authentication_services=(NTS)|(NONE)
NTS:²Ù×÷ϵͳÈÏÖ¤·½Ê½,²»Ê¹ÓÿÚÁîÎļþ;
NONE:¿ÚÁîÎļþÈÏÖ¤·½Ê½
Remote_login_passwordfile=(NONE)|(EXCLU ......
¶¨Ò壺escape¹Ø¼ü×Ö¾³£ÓÃÓÚʹijЩÌØÊâ×Ö·û£¬ÈçͨÅä·û£º'%','_'תÒåΪËüÃÇÔ
À´µÄ×Ö·ûµÄÒâÒ壬±»¶¨ÒåµÄתÒå×Ö·ûͨ³£Ê¹ÓÃ'\',µ«ÊÇÒ²¿ÉÒÔʹÓÃÆäËûµÄ·ûºÅ¡£
ʵÀý£º
SQL> select * from t11 where name like '%_%';
NAME
----------
aa_a
aaa
SQL> select * from t11 where name like '%\_%' escape '\';
NAME
......
Óû§ºÅÂë µÇ½ʱ¼ä
1300000000 2010-01-01
1300000001 2010-01-01
1300000002 2010-01-02
1300000001 2010-01-02
1300000003 2010-01-03
1300000002 2010-01-03
1300000004 2010-01-04
1300000003 2010-01-04
1300000004 2010-01-02
1300000006 2011-01-04
1300000001 2011-01-04
ÌÞ³ýÖظ´µ ......
-- ÐòÁвÙ×÷ --
-- ´´½¨ÐòÁÐ
CREATE SEQUENCE u_sales_SEQ INCREMENT BY 1 START WITH 1 MINVALUE 1 NOCYCLE NOCACHE NOORDER;
-- ²é³öËùÓдæÔÚµÄÐòÁÐ
SELECT * from user_sequences
-- ɾ³ýÐòÁÐ
DROP SEQUENCE U_SALES_SEQ;
-- ²é³öÏÂÒ»¸öÐòÁÐID
SELECT U_SALES_SEQ. ......