Óï·¨£º
select *
from ±íÃû
where Ìõ¼þ1
start with Ìõ¼þ2
connect by prior µ±Ç°±í×Ö¶Î=¼¶Áª±í×Ö¶Î
start withÓëconnect by priorÓï¾äÍê³ÉµÝ¹é¼Ç¼£¬ÐγÉÒ»¿ÃÊ÷Ðνṹ£¬Í¨³£¿ÉÒÔÔÚ¾ßÓвã´Î½á¹¹µÄ±íÖÐʹÓá£
start with±íʾ¿ªÊ¼µÄ¼Ç¼
connect by prior Ö¸¶¨Ó뵱ǰ¼Ç¼¹ØÁªÊ±µÄ×ֶιØÏµ
´úÂ룺
--´´½¨²¿ÃÅ±í£¬ÕâÊÇÒ»¸ö¾ßÓвã´Î½á¹¹µÄ±í£¬×ӼǼͨ¹ýparent_idÓ븸¼Ç¼µÄid½øÐйØÁª
create table DEPT(
ID NUMBER(9) PRIMARY KEY, --²¿ÃÅID
NAME VARCHAR2(100), --²¿ÃÅÃû³Æ
PARENT_ID NUMBER(9) --¸¸¼¶²¿ÃÅID£¬Í¨¹ý´Ë×Ö¶ÎÓëÉϼ¶²¿ÃŹØÁª
);
Ïò±íÖвåÈëÈçÏÂÊý¾Ý£¬ÎªÁËʹ´úÂë¼òµ¥£¬Ò»¸ö²¿ÃŽö¾ßÓÐÒ»¸öϼ¶²¿ÃÅ
¡ñ´Ó¸ù½Úµã¿ªÊ¼²éѯµÝ¹éµÄ¼Ç¼
select *
from dept
start with id=1
connect by prior id = parent_id;
ÏÂÃæÊDzéѯ½á¹û£¬start with id=1±íʾ´Óid=1µÄ¼Ç¼¿ªÊ¼²éѯ£¬ÏòÒ¶×ӵķ½ÏòµÝ¹é£¬µÝ¹éÌõ¼þÊÇid=parent_id£¬µ±Ç°¼Ç¼µÄidµÈÓÚ×ӼǼµÄparent_id
¡ñ´ÓÒ¶×ӽڵ㿪ʼ²éѯµÝ¹éµÄ¼Ç¼
select *
from dept
start with id=5
connect by prior parent_id = id;
ÏÂÃæÊDzéѯ½á¹û£¬µÝ¹éÌõ¼þ°´ÕÕµ±Ç°¼Ç¼µÄparent_idµÈÓ븸¼Ç¼µÄid
¡ ......
Oracle±í¿Õ¼äµÄ¹ÜÀí
1.´´½¨±í¿Õ¼ä
//´´½¨ÁÙʱ±í¿Õ¼ä
create temporary tablespace test_temp
tempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
//´´½¨Êý¾Ý±í¿Õ¼ä
create tablespace test_data
logging
datafile 'E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;
2.¸øÓû§Ö¸¶¨±í¿Õ¼ä
//´´½¨Óû§²¢Ö¸¶¨±í¿Õ¼ä
create user testserver_user identified by testserver_user
default tablespace test_data
temporary tablespace test_temp;
//¸øÓû§ÊÚÓèȨÏÞ
grant connect,resource to testserver_user;
3.±í¿Õ¼äÇ¨ÒÆ
·½·¨1£º
alter table tb_name move tablespace tbs_name;
À´¶Ô±í×ö¿Õ¼äÇ¨ÒÆÊ±Ö»ÄÜÒÆ¶¯·Çlob×Ö¶ÎÒ ......
Ò»£®Ïà¹ØµÄ¸ÅÄî
RowidµÄ¸ÅÄrowidÊÇÒ»¸öαÁУ¬¼ÈÈ»ÊÇαÁУ¬ÄÇôÕâ¸öÁоͲ»ÊÇÓû§¶¨Ò壬¶øÊÇϵͳ×Ô¼º¸ø¼ÓÉϵġ£¶Ôÿ¸ö±í¶¼ÓÐÒ»¸örowidµÄαÁУ¬µ«ÊÇ
±íÖв¢²»ÎïÀí´æ´¢ROWIDÁеÄÖµ¡£²»¹ýÄã¿ÉÒÔÏñʹÓÃÆäËüÁÐÄÇÑùʹÓÃËü£¬µ«ÊDz»ÄÜɾ³ý¸ÄÁУ¬Ò²²»ÄܶԸÃÁеÄÖµ½øÐÐÐ޸ġ¢²åÈë¡£Ò»µ©Ò»ÐÐÊý¾Ý²åÈëÊý¾Ý¿â£¬Ôò
rowidÔÚ¸ÃÐеÄÉúÃüÖÜÆÚÄÚÊÇΨһµÄ£¬¼´¼´Ê¹¸ÃÐвúÉúÐÐÇ¨ÒÆ£¬ÐеÄrowidÒ²²»»á¸Ä±ä¡£
Recursive
SQL¸ÅÄÓÐʱΪÁËÖ´ÐÐÓû§·¢³öµÄÒ»¸ösqlÓï¾ä£¬Oracle±ØÐëÖ´ÐÐһЩ¶îÍâµÄÓï¾ä£¬ÎÒÃǽ«ÕâЩ¶îÍâµÄÓï¾ä³ÆÖ®Îª'recursive
calls'»ò'recursive SQL statements'¡£Èçµ±Ò»¸öDDLÓï¾ä·¢³öºó£¬ORACLE×ÜÊÇÒþº¬µÄ·¢³öһЩrecursive
SQLÓï¾ä£¬À´ÐÞ¸ÄÊý¾Ý×ÖµäÐÅÏ¢£¬ÒÔ±ãÓû§¿ÉÒԳɹ¦µÄÖ´ÐиÃDDLÓï¾ä¡£µ±ÐèÒªµÄÊý¾Ý×ÖµäÐÅϢûÓÐÔÚ¹²ÏíÄÚ´æÖÐʱ£¬¾³£»á·¢ÉúRecursive
calls£¬ÕâЩRecursive calls»á½«Êý¾Ý×ÖµäÐÅÏ¢´ÓÓ²Å̶ÁÈëÄÚ´æÖС£Óû§²»±È¹ØÐÄÕâЩrecursive
SQLÓï¾äµÄÖ´ÐÐÇé¿ö£¬ÔÚÐèÒªµÄʱºò£¬ORACLE»á×Ô¶¯µÄÔÚÄÚ²¿Ö´ÐÐÕâЩÓï¾ä¡£µ±È»DMLÓï¾äÓëSELECT¶¼¿ÉÄÜÒýÆðrecursive
SQL¡£¼òµ¥µÄ˵£¬ÎÒÃÇ¿ÉÒÔ½«´¥·¢Æ÷ÊÓΪrecursive SQL¡£
Row Source(ÐÐÔ´)£ºÓÃÔÚ²éѯÖУ¬ÓÉÉÏÒ»²Ù×÷·µ»ØµÄ ......
ORACLEѧϰÖгöÏÖµÄÎÊÌ⣨³ÖÐø¸üÐÂÖУ©
1¡¢ ORA:12545 ÒòÄ¿±êÖ÷»ú»ò¶ÔÏó²»´æÔÚ£¬Á¬½Óʧ°Ü
ÍøÉϲο¼µÄ½â¾ö°ì·¨
1.ËÑË÷ÄãµÄoracle°²×°Ä¿Â¼£¬ÕÒµ½ÕâÁ©¸öÎļþ tnsnames.ora ºÍ listener.ora ¼Çס¾Í¸ÄÕâÁ©¸öÎļþ¾ÍÐÐÁË£¬»¹ÓÐÒ»¸ö´óдµÄTNSNAMES.ORA²»ÓùÜËü¡£ËûÃǵÄ·¾¶ÈçÏ£ºÈç E:\oracle\ora92\network\admin ÕâÊÇÎҵķ¾¶ ÄãµÄ¿Ï¶¨ºÍÎҵIJ»Ò»Ñù£¬µ«ÄÜÕÒµ½ÕâÁ©¸öÎļþ¾ÍÐÐÁË,ËûÃÇÔÚͬһ¸öĿ¼À±à¼ÕâÁ©¸öÎļþ£¬°ÑÀïÃæµÄHost= µÄµØ·½¸ÄΪÄãµÄ¼ÆËã»úÃû¾ÍÐÐÁË¡£×¢ÒâÓжà¸ö£¬¿´×ÐϸÁË¡£»òÕ߸ijÉIP,Ï´θÄÁËIP×¢ÒâÔÙÐÞ¸ÄҪͳһ
2.Èç¹ûÕâʱµÇ½µÄ»°£¬¿Ï¶¨»áÌáʾÄãûÓмàÌýÆ÷£¬ÄÇÊǼàÌýµÄ·þÎñûÓпª£¬µ½¼ÆËã»úµÄ·þÎñ½øÈë·þÎñµÄ·½·¨£º¿ØÖÆÃæ°å-¡µ¹ÜÀí¹¤¾ß-¡µ·þÎñ£¨Á©¸ö³ÝÂÖµÄÄǸöͼ±ê£©£¬È»ºóÕÒµ½OracleOraHome92TNSListenerÕâ¸ö·þÎñ£¬°ÑËüÆô¶¯ÁË£¬¾ÍºÃÁË¡£
2¡¢ORA_12541 £ºÃ»ÓмàÌýÆ÷
ÕÒµ½lsnrctl.exe(${ORACLE_HOME}/ binÏÂÃæ) È»ºólsnrctl start ......
½ñÌì°²×°Èí¼þÒ»Ö±ÔÚ²âÊÔÁ´½Ó²»ÄÜͨ¹ý£¬³öÏÖORA-12154: TNS: could not resolve service name£¬ºóÀ´²Å·¢ÏÖÊÇtnsnames.oraÖÐÓÐÎó¡£²éÕÒÍøÉϵÄ×ÊÁÏ£¬¼Ç¼ÏÂÀ´¡£
ÒªÅųý¿Í»§¶ËÓë·þÎñÆ÷¶ËµÄÁ¬½ÓÎÊÌ⣬Ê×Ïȼì²é¿Í»§¶ËÅäÖÃÊÇ·ñÕýÈ·(¿Í»§¶ËÅäÖñØÐëÓëÊý¾Ý¿â·þÎñÆ÷¶Ë¼àÌýÅäÖÃÒ»ÖÂ)£¬ÔÙ¸ù¾Ý´íÎóÌáʾ½â¾ö¡£ÏÂÃæÁгö¼¸ÖÖ³£¼ûµÄÁ¬½ÓÎÊÌ⣺
1¡¢
ORA-12541: TNS:
ûÓмàÌýÆ÷
ÏÔ¶øÒ×¼û£¬·þÎñÆ÷¶ËµÄ¼àÌýÆ÷ûÓÐÆô¶¯£¬ÁíÍâ¼ì²é¿Í»§¶ËIPµØÖ·»ò¶Ë¿ÚÌîдÊÇ·ñÕýÈ·¡£Æô¶¯¼àÌýÆ÷£º
$ lsnrctl start
»ò
C:\lsnrctl start
2¡¢
ORA-12500: TNS:
¼àÌý³ÌÐòÎÞ·¨Æô¶¯×¨Ó÷þÎñÆ÷½ø³Ì
¶ÔÓÚWindows¶øÑÔ£¬Ã»ÓÐÆô¶¯OracleʵÀý·þÎñ¡£Æô¶¯ÊµÀý·þÎñ£º
C:\oradim –startup -sid myoracle
3¡¢
ORA-12535: TNS:
²Ù×÷³¬Ê±
³öÏÖÕâ¸öÎÊÌâµÄÔÒòºÜ¶à£¬µ«Ö÷Òª¸úÍøÂçÓйء£½â¾öÕâ¸öÎÊÌ⣬Ê×Ïȼì²é¿Í»§¶ËÓë·þÎñ¶ËµÄÍøÂçÊÇ·ñ³©Í¨£¬Èç¹ûÍøÂçÁ¬Í¨£¬Ôò¼ì²éÁ½¶ËµÄ·À»ðǽÊÇ·ñ×èµ²ÁËÁ¬½Ó¡£
4¡¢
ORA-12154: TNS:
ÎÞ·¨´¦Àí·þÎñÃû
¼ì
²éÊäÈëµÄ·þÎñÃûÓëÅäÖõķþÎñÃûÊÇ·ñÒ»Ö¡£ÁíÍâ×¢ÒâÉú³ÉµÄ±¾µØ·þÎñÃûÎļþ(WindowsÏÂÈçD:\oracle\ora92\network\admin
\tnsnames.ora£¬Linux/UnixÏ ......
µÇ½ORACLEʱ³öÏÖ£ºORA-12637 °ü½ÓÊÜʧ°Ü ´íÎó
½â¾ö·½·¨£ºÔÚ\oracle\product\10.2.0\client_1\NETWORK\ADMIN ÖÐÕÒµ½sqlnet.oraÎļþ£¬
°ÑÐÞ¸Ä SQLNET.AUTHENTICATION_SERVICES= (NONE)¾Í¿ÉÒÔÁË¡£ ......