OracleÖÐstart with...connect by prior×Ó¾äÓ÷¨
connect by Êǽṹ»¯²éѯÖÐÓõ½µÄ£¬Æä»ù±¾Óï·¨ÊÇ£º
select ... from tablename start with Ìõ¼þ1
connect by Ìõ¼þ2
where Ìõ¼þ3;
Àý£º
select * from table
start with org_id = 'HBHqfWGWPy'
connect by prior org_id = parent_id;
¼òµ¥ËµÀ´Êǽ«Ò»¸öÊ÷×´½á¹¹´æ´¢ÔÚÒ»ÕűíÀ±ÈÈçÒ»¸ö±íÖдæÔÚÁ½¸ö×Ö¶Î:
org_id,parent_idÄÇôͨ¹ý±íʾÿһÌõ¼Ç¼µÄparentÊÇË£¬¾Í¿ÉÒÔÐγÉÒ»¸öÊ÷×´½á¹¹¡£
ÓÃÉÏÊöÓï·¨µÄ²éѯ¿ÉÒÔÈ¡µÃÕâ¿ÃÊ÷µÄËùÓмǼ¡£
ÆäÖУº
Ìõ¼þ1 ÊǸù½áµãµÄÏÞ¶¨Óï¾ä£¬µ±È»¿ÉÒÔ·Å¿íÏÞ¶¨Ìõ¼þ£¬ÒÔÈ¡µÃ¶à¸ö¸ù½áµã£¬Êµ¼Ê¾ÍÊǶà¿ÃÊ÷¡£
Ìõ¼þ2 ÊÇÁ¬½ÓÌõ¼þ£¬ÆäÖÐÓÃPRIOR±íʾÉÏÒ»Ìõ¼Ç¼£¬±ÈÈç CONNECT BY PRIOR org_id = parent_id¾ÍÊÇ˵ÉÏÒ»Ìõ¼Ç¼µÄorg_id ÊDZ¾Ìõ¼Ç¼µÄparent_id£¬¼´±¾¼Ç¼µÄ¸¸Ç×ÊÇÉÏÒ»Ìõ¼Ç¼¡£
Ìõ¼þ3 ÊǹýÂËÌõ¼þ£¬ÓÃÓÚ¶Ô·µ»ØµÄËùÓмǼ½øÐйýÂË¡£
¼òµ¥½éÉÜÈçÏ£º
ÔçɨÃèÊ÷½á¹¹±íʱ£¬ÐèÒªÒÀ´Ë·ÃÎÊÊ÷½á¹¹µÄÿ¸ö½Úµã£¬Ò»¸ö½ÚµãÖ»ÄÜ·ÃÎÊÒ»´Î£¬Æä·ÃÎʵIJ½ÖèÈçÏ£º
µÚÒ»²½£º´Ó¸ù½Úµã¿ªÊ¼£»
µÚ¶þ²½£º·ÃÎʸýڵ㣻
µÚÈý²½£ºÅжϸýڵãÓÐÎÞδ±»·ÃÎʵÄ×ӽڵ㣬ÈôÓУ¬ÔòתÏòËü×î×ó²àµÄδ±»·ÃÎʵÄ×Ó½Ú£¬²¢Ö´Ðеڶþ²½£¬·ñÔòÖ´ÐеÚËIJ½£»
µÚËIJ½£ºÈô¸Ã½ÚµãΪ¸ù½Úµã£¬Ôò·ÃÎÊÍê±Ï£¬·ñÔòÖ´ÐеÚÎå²½£»
µÚÎå²½£º·µ»Øµ½¸Ã½ÚµãµÄ¸¸½Úµã£¬²¢Ö´ÐеÚÈý²½Öè¡£
×ÜÖ®£ºÉ¨ÃèÕû¸öÊ÷½á¹¹µÄ¹ý³ÌÒ²¼´ÊÇÖÐÐò±éÀúÊ÷µÄ¹ý³Ì¡£
1£® Ê÷½á¹¹µÄÃèÊö
Ê÷½á¹¹µÄÊý¾Ý´æ·ÅÔÚ±íÖУ¬Êý¾ÝÖ®¼äµÄ²ã´Î¹ØÏµ¼´¸¸×Ó¹ØÏµ£¬Í¨¹ý±íÖеÄÁÐÓëÁмäµÄ¹ØÏµÀ´ÃèÊö£¬ÈçEMP±íÖеÄEMPNOºÍMGR¡£EMPNO±íʾ¸Ã¹ÍÔ±µÄ±àºÅ£¬MGR±íʾÁìµ¼¸Ã¹ÍÔ±µÄÈ˵ıàºÅ£¬¼´×Ó½ÚµãµÄMGRÖµµÈÓÚ¸¸½ÚµãµÄEMPNOÖµ¡£ÔÚ±íµÄÿһÐÐÖж¼ÓÐÒ»¸ö±íʾ¸¸½ÚµãµÄMGR£¨³ý¸ù½ÚµãÍ⣩£¬Í¨¹ýÿ¸ö½ÚµãµÄ¸¸½Úµã£¬¾Í¿ÉÒÔÈ·¶¨Õû¸öÊ÷½á¹¹¡£
ÔÚSELECTÃüÁîÖÐʹÓÃCONNECT BY ºÍ°ªSTART WITH ×Ó¾ä¿ÉÒÔ²éѯ±íÖеÄÊ÷Ðͽṹ¹ØÏµ¡£ÆäÃüÁî¸ñʽÈçÏ£º
SELECT ¡£¡£¡£
CONNECT BY {PRIOR ÁÐÃû1=ÁÐÃû2|ÁÐÃû1=PRIOR ÁÑÃû2}
[START WITH]£»
ÆäÖУºCONNECT BY×Ó¾ä˵Ã÷ÿÐÐÊý¾Ý½«Êǰ´²ã´Î˳Ðò¼ìË÷£¬²¢¹æ¶¨½«±íÖеÄÊý¾ÝÁ¬ÈëÊ÷ÐͽṹµÄ¹ØÏµÖС£PRIORYÔËËã·û±ØÐë·ÅÖÃÔÚÁ¬½Ó¹ØÏµµÄÁ½ÁÐÖÐijһ¸öµÄÇ°Ãæ¡£¶ÔÓÚ½Úµã¼äµÄ¸¸×Ó¹ØÏµ£¬PRIORÔËËã·ûÔÚÒ»²à±íʾ¸¸½Úµã£¬ÔÚÁíÒ»²à±íʾ×ӽڵ㣬´Ó¶øÈ·¶¨²éÕÒÊ÷½á¹¹ÊǵÄ˳ÐòÊÇ×Ô¶¥ÏòÏ»¹ÊÇ×Ôµ×ÏòÉÏ¡£ÔÚÁ¬½Ó¹ØÏµÖУ¬³ýÁË¿ÉÒÔʹÓÃÁÐÃûÍ⣬»¹ÔÊÐíʹÓÃÁбí´ïʽ¡£START WITH ×Ó¾äΪ¿ÉÑ¡ÏÓÃ
Ïà¹ØÎĵµ£º
Ò»¡¢¼àÌýÆ÷(LISTENER)
¡¡¡¡¼àÌýÆ÷ÊÇOracle»ùÓÚ·þÎñÆ÷¶ËµÄÒ»ÖÖÍøÂç·þÎñ£¬Ö÷ÒªÓÃÓÚ¼àÌý¿Í»§¶ËÏòÊý¾Ý¿â·þÎñÆ÷¶ËÌá³öµÄÁ¬½ÓÇëÇó¡£¼ÈÈ»ÊÇ»ùÓÚ·þÎñÆ÷¶ËµÄ·þÎñ£¬ÄÇôËüÒ²Ö»´æÔÚÓÚÊý¾Ý¿â·þÎñÆ÷¶Ë£¬½øÐмàÌýÆ÷µÄÉèÖÃÒ²ÊÇÔÚÊý¾Ý¿â·þÎñÆ÷¶ËÍê³ÉµÄ¡£
¶þ¡¢±¾µØ·þÎñÃû(Tnsname)
¡¡¡¡Oracle¿Í»§¶ËÓë·þÎñÆ÷¶ËµÄÁ¬½ÓÊÇͨ¹ý¿Í»§¶Ë· ......
oracleµÄlicenseºÍÕý°æÊ¹ÓÃÎÊÌâ
url:http://blog.csdn.net/outget1/archive/2009/10/15/4675028.aspx
2008-06-30 23:42
1, Õý°æOracle ²úÆ·ºÍµÁ°æµÄÇø±ð
Ö±±¼Ö÷Ì⣬ÕâÊÇÐí¶àÑз¢²»×¢ÒâµÄµØ·½¡£¶ÔÓÚÉÌÓ㨾ÍÊÇÄã²»ÊÇÔÚ¼ÒÀ×Ô¼ºÍ棩£¬ÑϸñÀ´Ëµ£¬¾ÍÊÇÒ»ÕÅÐí¿ÉÖ¤Ö½µÄÇø±ð¡£²»¹ÜÊÇʲôʱºò£¬ÏÂÔØµÄ°æ±¾¶¼¿ÉÒÔ½¨Á¢Êý¾Ý¿â²¢ ......
ÏÂÃæÊÇORACLEÐÐÁÐת»»Í¨Óô洢¹ý³Ì£º
1¡¢
Function Fun_Split_Str(p_Str Varchar2, p_Division Varchar2, p_Seq Int)
Return Varchar2 Is
v_First Int;
v_Last Int;
Begin
If p_Seq < 1 Then
&nbs ......
distinctÕâ¸ö¹Ø¼ü×ÖÀ´¹ýÂ˵ô¶àÓàµÄÖØ¸´¼Ç¼ֻ±£ÁôÒ»Ìõ£¬µ«ÍùÍùÖ»Óà ËüÀ´·µ»Ø²»Öظ´¼Ç¼µÄÌõÊý£¬¶ø²»ÊÇÓÃËüÀ´·µ»Ø²»ÖؼǼµÄËùÓÐÖµ¡£ÆäÔÒòÊÇdistinctÖ»ÓÐÓöþÖØÑ»·²éѯÀ´½â¾ö£¬¶øÕâÑù¶ÔÓÚÒ»¸öÊý¾ÝÁ¿·Ç³£´óµÄÕ¾À´Ëµ£¬ÎÞÒÉÊÇ»áÖ±½ÓÓ°Ï쵽ЧÂʵġ£
ÏÂÃæÏÈÀ´¿´¿´Àý×Ó£º
table±í
×Ö¶Î1 ×Ö¶Î2
&nbs ......
OracleʵÏÖ×ÔÔöÖ÷¼ü
oracleûÓÐORACLE×ÔÔö×Ö¶ÎÕâÑùµÄ¹¦ÄÜ£¬µ«ÊÇͨ¹ý´¥·¢Æ÷(trigger)ºÍÐòÁÐ(sequence)¿ÉÒÔʵÏÖ¡£
create table t_client (id number(4) primary key,
pid number(4) not null,
name varchar2(30) not null,
client_id varchar2(10),
client_level char(3),
bank_acct_no varchar2(30),
contact_tel&n ......