Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Oracle Decodeº¯ÊýµÄÓ÷¨

DECODEº¯ÊýÊÇORACLE PL/SQLÊǹ¦ÄÜÇ¿´óµÄº¯ÊýÖ®Ò»£¬Ä¿Ç°»¹Ö»ÓÐORACLE¹«Ë¾µÄSQLÌṩÁ˴˺¯Êý£¬ÆäËûÊý¾Ý¿â³§É̵ÄSQLʵÏÖ»¹Ã»Óд˹¦ÄÜ¡£DECODEÓÐʲôÓÃÍ¾ÄØ£¿ Ïȹ¹ÔìÒ»¸öÀý×Ó£¬¼ÙÉèÎÒÃÇÏë¸øÖÇÐÇÖ°Ô±¼Ó¹¤×Ê£¬Æä±ê×¼ÊÇ£º¹¤×ÊÔÚ8000ÔªÒÔϵĽ«¼Ó20£¥£»¹¤×ÊÔÚ8000ÔªÒÔÉϵļÓ15£¥£¬Í¨³£µÄ×ö·¨ÊÇ£¬ÏÈÑ¡³ö¼Ç¼ÖеŤ×Ê×Ö¶ÎÖµ? select salary into var-salary from employee£¬È»ºó¶Ô±äÁ¿var-salaryÓÃif-then-else»òchoose caseÖ®ÀàµÄÁ÷¿ØÖÆÓï¾ä½øÐÐÅжϡ£ Èç¹ûÓÃDECODEº¯Êý£¬ÄÇôÎÒÃǾͿÉÒÔ°ÑÕâЩÁ÷¿ØÖÆÓï¾äÊ¡ÂÔ£¬Í¨¹ýSQLÓï¾ä¾Í¿ÉÒÔÖ±½ÓÍê³É¡£ÈçÏ£ºselect decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary from employee ÊDz»ÊǺܼò½à£¿ DECODEµÄÓï·¨£ºDECODE(value,if1,then1,if2,then2,if3,then3,...,else)£¬±íʾÈç¹ûvalueµÈÓÚif1ʱ£¬DECODEº¯ÊýµÄ½á¹û·µ»Øthen1,...,Èç¹û²»µÈÓÚÈκÎÒ»¸öifÖµ£¬Ôò·µ»Øelse¡£³õ¿´Ò»Ï£¬DECODE Ö»ÄÜ×öµÈÓÚ²âÊÔ£¬µ«¸Õ²ÅÒ²¿´µ½ÁË£¬ÎÒÃÇͨ¹ýһЩº¯Êý»ò¼ÆËãÌæ´úvalue£¬ÊÇ¿ÉÒÔʹDECODEº¯Êý¾ß±¸´óÓÚ¡¢Ð¡ÓÚ»òµÈÓÚ¹¦ÄÜ¡£ 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) ...... ELSIF Ìõ¼þ=Öµn THEN RETURN(·­ÒëÖµn) ELSE RETURN(ȱʡֵ) END IF · ʹÓ÷½·¨: 1¡¢±È½Ï´óС select decode(sign(±äÁ¿1-±äÁ¿2),-1,±äÁ¿1,±äÁ¿2) from dual; --È¡½ÏСֵ sign()º¯Êý¸ù¾Ýij¸öÖµÊÇ0¡¢ÕýÊý»¹ÊǸºÊý£¬·Ö±ð·µ»Ø0¡¢1¡¢-1 ÀýÈç: ±äÁ¿1=10£¬±äÁ¿2=20 Ôòsign(±äÁ¿1-±äÁ¿2)·µ»Ø-1£¬decode½âÂë½á¹ûΪ¡°±äÁ¿1¡±£¬´ïµ½ÁËÈ¡½ÏСֵµÄÄ¿µÄ¡£ 2¡¢±í¡¢ÊÓͼ½á¹¹×ª»¯ ÏÖÓÐÒ»¸öÉÌÆ·ÏúÊÛ±ísale£¬±í½á¹¹Îª: month char(6) --ÔÂ·Ý sell number(10,2) --ÔÂÏúÊÛ½ð¶î ÏÖÓÐÊý¾ÝΪ: 200001 1000 200002 1100 200003 1200 200004 1300 200005 1400 200006 1500 200007 1600 200101 1100 200202 1200 200301 1300 ÏëҪת»¯ÎªÒÔϽṹµÄÊý¾Ý: year char(4) --Äê·Ý month1 number(10,2) --1ÔÂÏúÊÛ½ð¶î month2 number(10,2) --2ÔÂÏúÊÛ½ð¶î month3 number(10,2) --3ÔÂÏúÊÛ½ð¶î month4 number(10,2) --4ÔÂÏúÊÛ½ð¶î month5 number(10,2) --


Ïà¹ØÎĵµ£º

oracleÖе÷Óôø²ÎÊýµÄ´æ´¢¹ý³Ì

create or replace procedure proc_test
( a in number, b out number )
as
begin
b:=a+1;
end    proc_test;
ÏÖÔÚÒªµ÷Óõϰ¾ÍÊÇÕâÑù
SQL> c number;
SQL>exec proc_test(1,:c);
ǧÍòҪעÒâ±ðÍüÁËдðºÅ ......

´óÐÍÊý¾Ý¿âÓÅ»¯Éè¼ÆÇ³Ì¸(ORACLE) £¨Ò»£©

  
   ¶ÔÓÚORACLEÊý¾Ý¿âµÄÊý¾Ý´æÈ¡£¬Ö÷ÒªÓÐËĸö²»Í¬µÄµ÷Õû¼¶±ð£¬µÚÒ»¼¶µ÷ÕûÊDzÙ×÷ϵͳ¼¶°üÀ¨Ó²¼þƽ̨,µÚ¶þ¼¶µ÷ÕûÊÇORACLE RDBMS¼¶µÄµ÷Õû,µÚÈý¼¶ÊÇÊý¾Ý¿âÉè¼Æ¼¶µÄµ÷Õû,×îºóÒ»¸öµ÷Õû¼¶ÊÇSQL¼¶¡£Í¨³£ÒÀ´ËËļ¶µ÷Õû¼¶±ð¶ÔÊý¾Ý¿â½øÐе÷Õû¡¢ÓÅ»¯£¬Êý¾Ý¿âµÄÕûÌåÐÔÄÜ»áµÃµ½ºÜ´óµÄ¸ÄÉÆ¡£ÏÂÃæ´Ó¼¸¸ö²»Í¬·½Ã ......

²éѯOracle×ÊԴʹÓÃÇé¿ö

SELECT trim(NAME) ||'            '|| VALUE from v$parameter
WHERE NAME IN ('sga_max_size','db_cache_size','shared_pool_size',
'shared_pool_reserved_size','large_pool_size','java_pool_size',
'db_block_size','db_block_buffers','log_buffer','sort_area_si ......

oracleÖеÄrownumαÁÐÉî²ã·ÖÎö

¶ÔÓÚ Oracle µÄ rownum ÎÊÌ⣬ºÜ¶à×ÊÁ϶¼Ëµ²»Ö§³Ö>,>=,=,between...and£¬Ö»ÄÜÓÃÒÔÉÏ·ûºÅ(<¡¢<=¡¢!=)£¬²¢·Ç˵ÓÃ>,>=,=,between..and ʱ»áÌáʾSQLÓï·¨´íÎ󣬶øÊǾ­³£ÊDz鲻³öÒ»Ìõ¼Ç¼À´£¬»¹»á³öÏÖËÆºõÊÇĪÃûÆäÃîµÄ½á¹ûÀ´£¬ÆäʵÄúÖ»ÒªÀí½âºÃÁËÕâ¸ö rownum αÁеÄÒâÒå¾Í²»Ó¦¸Ã¸Ðµ½¾ªÆæ£¬Í¬ÑùÊÇαÁУ¬rownum Ó ......

Oracle ²ÎÊý·ÖÀà ºÍ ²ÎÊýµÄ²é¿´·½·¨


OracleÊý¾Ý¿âϵͳ¸ù¾Ý³õʼ»¯²ÎÊýÎļþinit.oraÖÐÉèÖõIJÎÊýÀ´ÅäÖÃ×ÔÉíµÄÆô¶¯£¬Ã¿¸öʵÀýÔÚÆô¶¯Ö®Ç°£¬Ê×ÏȶÁÈ¡ÕâЩ²ÎÊýÎļþÖÐÉèÖõIJ»Í¬²ÎÊý¡£
OracleϵͳÖеIJÎÊý£¬¸ù¾ÝϵͳʹÓÃÇé¿ö¿ÉÒÔ¼òµ¥·ÖΪÁ½´óÀࣺ
ÆÕͨ²ÎÊý£ºÒ²¾ÍÊÇOracleϵͳÕý³£Ê¹ÓõÄһЩ²ÎÊý£¬
·Ç·²²ÎÊý£º°üÀ¨ÈýÖÖ£¬¹ýʱ²ÎÊý¡¢Ç¿µ÷²ÎÊýºÍÒþ²Ø²ÎÊý¡£
Ëæ×ÅOrac ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ