oracle constraints(3)
oracle constraints Ó¦ÓÃ
oracle constraints¿ÉÒÔÉèÖÃΪÁ¢¼´¼ì²é»òÕßµ±Ê±ÊÂÎñÌύʱ¼ì²é¡£
¿ÉÒÔÔÚ´´½¨Ô¼ÊøµÄʱºòÖ¸¶¨ÊÇdeferrable¡£È»ºóͨ¹ýset constraints xxx set deferred»òÕßimmediate,Ò²¿ÉÒÔÔÚseesion¼¶±ðÉ趨ËùÓÐÔ¼ÊøΪdeferred»òÕßimmediate(alter seesion set constraints deferred/immediate)¡£
SQL> select t.constraint_name, t.status, t.validated, t.deferrable from user_constraints t;
CONSTRAINT_NAME STATUS VALIDATED DEFERRABLE
------------------------------ -------- ------------- --------------
SYS_C003765 ENABLED VALIDATED NOT DEFERRABLE
SYS_C003768 ENABLED NOT VALIDATED NOT DEFERRABLE
UK_T ENABLED NOT VALIDATED NOT DEFERRABLE
SQL> alter table t2 add primary key(vid) deferrable;
Table altered
SQL>
SQL> select t.constraint_name, t.status, t.validated, t.deferrable from user_constraints t;
CONSTRAINT_NAME STATUS VALIDATED DEFERRABLE
------------------------------ -------- ------------- --------------
SYS_C003765 ENABLED VALIDATED NOT DEFERRABLE
SYS_C003772 ENABLED VALIDATED DEFERRABLE
SYS_C003768 ENABLED NOT VALIDATED NOT DEFERRABLE
UK_T ENABLED NOT VALIDATED NOT DEFERRABLE
SQL> select * from t2;
VID VNAME VSEX
---------- ---------- ----------
1 a y
2 b
3 c x
SQL> insert into t2 values (1,'d','y');
insert into t2 values (1,'d','y')
ORA-00001: Î¥·´Î¨Ò»Ô¼ÊøÌõ¼þ (PORTALDB.SYS_C003772)
SQL> set constraints SYS_C003772 deferred;
Constraints set
SQL> insert into t2 values (1,'d','y');
1 row inserted
SQL> set constraints SYS_C003772 deferred;
Constraints set
SQL> commit;
commit
ORA-02091: ÊÂÎñ´¦ÀíÒÑÖØËã
ORA-00001: Î¥·´Î¨Ò»Ô¼ÊøÌõ¼þ (PORTALDB
Ïà¹ØÎĵµ£º
ѧϰOracle DBAÒ²°ë¸ö¶àѧÆÚÁË£¬½ñÌìÃÍÈ»²Å·¢ÏÖ£¬ÔÀ´ÎÒµÄÊ黹ÊǺÜеģ¬ÉϿβÙ×÷ʱºòÒ²Ö»ÊÇÖªµÀ´ó¸ÅÔõô×ö£¬µ«ÊÇÒªÕæµÄÈ«²¿×Ô¼º×ö£¬¶ø²»È¥·Ê黹ÊÇÓÐÒ»¶¨µÄÄѶȵģ¬ËùÒÔÄØ£¬½ñÌ쿪ʼ½«DBA´ÓÍ·¸´Ï°Ò»±é£¬Í¬Ê±ÔÙ²Ù×÷Ò»±é¡£
µÚÒ»Õ£¬Ñ§µÄÊÇOracleµÄÌåϵ½á¹¹£ ......
//¿´¿´ÈçºÎ±àдһЩ¸´ÔӵĴ洢¹ý³Ì
Ò»£ºÎÞ·µ»ØÖµµÄ´æ´¢¹ý³Ì
ΪÁËÑéÖ¤£¬ÎÒÏÈ´´½¨Ò»ÕŲâÊÔ±í
create table mytest(myid varchar2(30),myname varchar2(50));
´æ´¢¹ý³ÌΪ£º
create or replace PROCEDURE mytest2(id in varchar2,name in varchar2) as
begin
insert into mytest (myid,myname) valu ......
Ò»¡¢Ê²Ã´ÊÇOracle×Ö·û¼¯
Oracle×Ö·û¼¯ÊÇÒ»¸ö×Ö½ÚÊý¾ÝµÄ½âÊ͵ķûºÅ¼¯ºÏ,ÓдóС֮·Ö,ÓÐÏ໥µÄ°üÈݹØϵ¡£ORACLE Ö§³Ö¹ú¼ÒÓïÑÔµÄÌåϵ½á¹¹ÔÊÐíÄãʹÓñ¾µØ»¯ÓïÑÔÀ´´æ´¢£¬´¦Àí£¬¼ìË÷Êý¾Ý¡£ËüʹÊý¾Ý¿â¹¤¾ß£¬´íÎóÏûÏ¢£¬ÅÅÐò´ÎÐò£¬ÈÕÆÚ£¬Ê±¼ä£¬»õ±Ò£¬Êý×Ö£¬ºÍÈÕÀú×Ô¶¯ÊÊÓ¦±¾µØ»¯ÓïÑÔº ......
ÎÒÃÇÒª×öµ½²»µ«»áдSQL,»¹Òª×öµ½Ð´³öÐÔÄÜÓÅÁ¼µÄSQL,ÒÔÏÂΪ±ÊÕßѧϰ¡¢ÕªÂ¼¡¢²¢»ã×ܲ¿·Ö×ÊÁÏÓë´ó¼Ò·ÖÏí£¡
£¨1£©Ñ¡Ôñ×îÓÐЧÂʵıíÃû˳Ðò(Ö»ÔÚ»ùÓÚ¹æÔòµÄÓÅ»¯Æ÷ÖÐÓÐЧ)£º
orACLEµÄ½âÎöÆ÷°´ÕÕ´ÓÓÒµ½×óµÄ˳Ðò´¦Àífrom×Ó¾äÖеıíÃû£¬from×Ó¾äÖÐдÔÚ×îºóµÄ±í(»ù´¡±í driving table)½«±»×îÏÈ´¦Àí£¬ÔÚfrom×Ó¾äÖаüº¬¶à¸ö±íµÄÇé¿öÏÂ, ......
ceil(number) ´óÓÚ»òµÈÓÚµÄ×îСÕûÊý
floor(number) СÓÚ»òµÈÓÚµÄ×î´óÕûÊý
trunc(number,m) ÔÚÕûÊýnumberµÄmλÖýصôm¼°ÒÔºóµÄλÊý:
Èç:trunc(15.78,1)=15.7
trunc(15.78,-1)=15;
round ......