oracle Ô¼Êø(constraint)µÄ¼¸¸ö²ÎÊýµÄСÑо¿
Ê×ÏȸãÇåϼ¸¸ö¸ÅÄ
ORACLEÖУ¬Ô¼Êø·Ödeferred ¸ú immediate 2ÖÖ£º
deferred:Èç¹û Oracle ÔÚÊÂÎñÌá½»£¨commit£©Ê±²Å¶ÔÔ¼ÊøÖ´Ðмì²é£¬Ôò³Æ´ËÔ¼ÊøÊÇÑӳٵģ¨deferred£©¡£Èç¹ûÊý¾ÝÎ¥·´ÁËÑÓ³ÙÔ¼Êø£¬Ìá½»²Ù×÷½«µ¼ÖÂÊÂÎñ±»»Ø¹ö£¨undo£©¡£
immediate:Èç¹ûÔ¼ÊøÊǼ´Ê±µÄ£¨immediate£©£¨·ÇÑӳٵģ©£¬Ôò´ËÔ¼Êø½«ÔÚÓï¾äÖ´ÐнáÊøºó½øÐмì²é¡£Èç¹ûÊý¾ÝÎ¥·´ÁËÑÓ³ÙÔ¼Êø£¬Óï¾ä½«±»Á¢¼´»Ø¹ö¡£
Ò»°ãÇé¿öÏ£¬ÎÒÃÇÓõÄÔ¼Êø³õʼ¶¼ÊÇimmediateÐ͵Ä(ĬÈÏ)£¬¶øÇÒ²»ºÃתΪdeferredÐÍ¡£µ«ÊÇÈç¹û³õʼÊÇdeferrable(ÐèÒªÊÖ¶¯Ö¸¶¨),ÄÇdeferred¸úimmediate 2ÖÖ״̬¿ÉÒÔËæÒâת»»¡£
´ËÍâ£¬Ô¼ÊøÓÐÒÔÏÂ4ÖÖ״̬£º
ENABLE£¨ÆôÓã©È·±£ËùÓÐÊäÈëµÄÊý¾Ý¶¼×ñ´ÓÔ¼Êø£¨constraint£©
DISABLE£¨½ûÓã©×ÜÊÇÔÊÐíÊäÈëÊý¾Ý£¬ÎÞÂÛÊý¾ÝÊÇ·ñ×ñ´ÓÔ¼Êø
VALIDATE£¨ÑéÖ¤£©È·±£ÒÑ´æÔÚµÄÊý¾Ý×ñ´ÓÔ¼Êø
NOVALIDATE£¨ÎÞÑéÖ¤£©ÔÊÐíÒÑ´æÔÚµÄÊý¾Ý²»×ñ´ÓÔ¼Êø
ENABLE VALIDATE Óë ENABLE Ïàͬ¡£Oracle ½«¼ì²éÔ¼Êø£¬²¢±£Ö¤ËùÓÐÊý¾Ý¾ù×ñ´ÓÔ¼Êø¡£
ENABLE NOVALIDATE ±íʾËùÓÐвåÈë»ò±»Ð޸ĵÄÊý¾Ý¶¼±ØÐë×ñ´ÓÔ¼Êø£¬µ«ÔÊÐíÒÑ´æÔÚµÄÊý¾Ý²»×ñ´ÓÔ¼Êø¡£
DISABLE NOVALIDATE Óë DISABLE Ïàͬ¡£Oracle ²»»á¼ì²éÔ¼Êø.
DISABLE VALIDATE ½«½ûÓÃÔ¼Êø£¬ÒƳýÔ¼ÊøÊ¹ÓõÄË÷Òý£¬²¢½ûÖ¹ÐÞ¸ÄÔ¼Êø¼üµÄÊý¾Ý¡£
Ô¼Êø²»ÂÛÄÄÖÖÀàÐÍ£¬ÒªÄܹ»ÉúЧ£¬±ØÐë״̬ÊÇenable²ÅÐС£
SQLPLUS(oracle 10.2.0.1):
--deferred ¸ú immediateµÄ¶Ô±ÈÊÔÑé-----------------------------
SQL> drop table aa purge;
Table dropped.
SQL> create table aa ( id number,name varchar2(20),constraint pk primary key(id));
Table created.
SQL> col constraint_name for a11
SQL> select CONSTRAINT_NAME ,CONSTRAINT_TYPE,TABLE_NAME ,STATUS,DEFERRABLE,DEFERRED,validated from u
ser_constraints where table_name='AA';
CONSTRAINT_ C TABLE STATUS DEFERRABLE DEFERRED VALIDATED
----------- - ----- -------- -------------- --------- -------------
PK P AA ENABLED NOT DEFERRABLE IMMEDIATE VALIDATED
--¿ÉÒÔ¿´µ½£¬Ä¬ÈϵÄÊÇNOT DEFERRABLE£¬ÏÂÃæÎÒÃǽ«ËüתΪimmediateÊÔÊÔ
SQL> set constraint pk immediate;
set constraint pk imme
Ïà¹ØÎĵµ£º
// ½¨Á¢±í¿Õ¼ä£¨Ö¸¶¨Îļþ·¾¶£©¡£
create TABLESPACE EAS_D_sptcc0_STANDARD DATAFILE 'F:\oracledb\EAS_D_sptcc0_STANDARD.dbf' size 10000M EXTENT MANAGEMENT local;
// ɾ³ý±í¿Õ¼ä£¨Ö¸¶¨Îļþ·¾¶£©¡£
DROP TABLESPACE temp_data INCLUDING CONTENTS AND DATAFILES;
// ½¨Á¢ÁÙʱ±í¿Õ¼ä¡£
CREATE TEMPORARY TABLESPA ......
ÔÎÄ:http://www.blogjava.net/Unmi/archive/2009/01/05/249956.html
ÔÚ Oracle Êý¾Ý¿âÖУ¬ÎÒÃÇͨ³£ÔÚ²»Í¬Êý¾Ý¿âµÄ±í¼ä¼Ç¼½øÐи´ÖÆ»òÇ¨ÒÆÊ±»áÓÃÒÔϼ¸ÖÖ·½·¨£º
1. A ±íµÄ¼Ç¼µ¼³öΪһÌõÌõ·ÖºÅ¸ô¿ªµÄ insert Óï¾ä£¬È»ºóÖ´ÐвåÈëµ½ B ±íÖÐ
2. ½¨Á¢Êý¾Ý¿â¼äµÄ dblink£¬È»ºóÓà create table B as select * from A ......
trunc()º¯ÊýÓÐÁ½ÖÖÓ÷¨ 1£ººóÃæ¸úÈÕÆÚ 2£º ºóÃæ¸úÊý×Ö
A£º SELECT a.times,to_date(a.times,'yyyymmdd'),trunc(to_date(a.times,'yyyymmdd'),'month') from dmf_loan_limit a
ÏÔʾµÄ½á¹ûΪ£º
1 20080131 2008-1-31 2008-1-1
2 20080131 &nb ......
¶ÔÓÚÎÒÃÇÕâ¸öÏîÄ¿À´Ëµ£¬Êý¾Ý¿âµÄ´æÈ¡µÄÐÔÄܾö¶¨ÁËÊý¾ÝÌṩµÄÐÔÄÜ¡£ÓÅ»¯µÄ´óÖµÄÔÀíÖ»ÓÐÁ½¸ö£ºÒ»ÊÇÊý¾Ý·Ö¿é´æ·Å£¬±ãÓÚÊý¾ÝµÄת´¢ºÍ¹ÜÀí£»¶þÊÇÖм䴦Àí£¬Ìá¸ßÊý¾ÝÌṩµÄËÙ¶È¡£
»ùÓÚÉÏÃæÁ½¸ö¸ù±¾µÄÔÀí£¬½èÖúÓÚÊý¾Ý²Ö¿âµÄ¸ÅÄÁоÙÊý¾Ý¿âµÄÓÅ»¯·½Ê½£º
1£® ·ÖÇø
ÔÚÊý¾Ý²Ö¿âÖУ¬ÊÂʵ±í£¬Ë÷Òý±í£¬Î¬¶È±í·Ö´¦ÓÚÈý¸ö²»Í ......
decode()º¯數ʹÓü¼ÇÉ
·Èí¼þ»·¾³£º
1¡¢Windows NT4.0+ORACLE 8.0.4
2¡¢ORACLE°²×°Â·¾¶Îª£ºC:\ORANT
·º¬Òå½âÊÍ£º
decode(Ìõ¼þ,Öµ1,·ÒëÖµ1,Öµ2,·ÒëÖµ2,...Öµn,·ÒëÖµn,ȱʡֵ)
¸Ãº¯ÊýµÄº¬ÒåÈçÏ£º
IF Ìõ¼þ=Öµ1 THEN
¡¡¡¡¡¡¡¡RETURN(·ÒëÖµ1)
ELSIF Ìõ¼þ=Öµ2 THEN
¡¡¡¡¡¡¡¡RETURN(·ÒëÖµ2)
......