¹ØÓÚ·Ö×éºó×Ö¶ÎÆ´½ÓµÄÎÊÌâ (Oracle)
£££££¹ØÓÚ·Ö×éºó×Ö¶ÎÆ´½ÓµÄÎÊÌâ
À´×Ô:www.itpub.net
×î½üÔÚÂÛ̳ÉÏ£¬¾³£»á¿´µ½¹ØÓÚ·Ö×éºó×Ö¶ÎÆ´½ÓµÄÎÊÌ⣬
´ó¸ÅÊÇÀàËÆÏÂÁеÄÇéÐΣº
SQL> select no,q from test
2 /
NO Q
---------- ------------------------------
001 n1
001 n2
001 n3
001 n4
001 n5
002 m1
003 t1
003 t2
003 t3
003 t4
003 t5
003 t6
12 rows selected
×îºóÒªµÃµ½ÀàËÆÓÚÈçϵĽá¹û£º
001 n1;n2;n3;n4;n5
002 m1
003 t1;t2;t3;t4;t5;t6
ͨ³£´ó¼Ò¶¼ÈÏΪÕâÀàÎÊÌâÎÞ·¨ÓÃÒ»¾äSQL½â¾ö£¬±¾À´ÎÒÒ²ÕâôÈÏΪ£¬¿ÉÊǽñÌìÎÞÒâÖÐͻȻÓÐÁËÁé¸Ð£¬ÔÀ´ÊÇ¿ÉÒÔÕâô×öµÄ£º
ǰ¼¸ÌìÓÐÈËÌáµ½¹ýsys_connect_by_pathµÄÓ÷¨£¬ÎÒÏëÕâÀïÊDz»ÊÇÒ²ÄÜÓõ½Õâ¸ö·½·¨£¬Èç¹ûÄÜ×öµ½µÄ»°£¬²»Óú¯Êý»ò´æÖü¹ý³ÌÒ²¿ÉÒÔ×öµ½ÁË£»ÒªÓõ½sys_connect_by_path£¬Ê×ÏÈÒª×Ô¼º¹¹½¨Ê÷Ð͵Ľṹ£¬²¢ÇÒÊ÷µÄÿ¸ö·ÖÖ§¶¼Êǵ¥¸ùµÄ£¬ÀýÈç1-¡µ2-¡µ3-¡µ4£¬²»»á´æÔÚ1-¡µ2£¬1-¡µ3µÄÇé¿ö£»
ÎÒÊÇÕâô¹¹½¨Ê÷£¬ºÜ¼òµ¥µÄ£¬¿´ÏÂÃæµÄ½á¹û¾Í»áÖªµÀÁË£º
SQL> select no,q,rn,lead(rn) over(partition by no order by rn) rn1
2 from (select no,q,row_number() over(order by no,q desc) rn from test)
3 /
NO Q RN RN1
---------- ------------------------------ ---------- ----------
001 n5 1 2
001 n4 2 3
001 n3 3 4
001 n2 4 5
001 n1 5
002 m1 6
003 t6 7 8
003 t5 8 9
003 t4 9 10
003 t3 10 11
003 t2 11 12
003 t1 12
12 rows selected
ÓÐÁËÕâ¸öÊ÷Ð͵Ľṹ£¬½ÓÏÂÀ´µÄʾͺðìÁË£¬Ö»ÒªÈ¡³öÓµÓÐȫ·¾¶µÄÄǸöpath£¬ÎÊÌâ¾Í½â¾öÁË£¬ÏÈ¿´no=‘001’µÄ·Ö×飺
select no,sys_connect_by_path(q,';') result from
(select no,q,rn,lead(rn) over(partition by no order by rn) rn1
from (select no,q,row_number() over(order by no,q desc) rn from test)
)
start with no = '001' and rn1 is null connect by rn1 = prior rn
SQL>
6 /
NO RESULT
---------- --------------------------------------------------------------------------------
001 ;n1
001 ;n1;n2
001 ;n1;n2;n3
001 ;n1;n2;n3;n4
001 ;n1;n2;n3;n4;n5
ÉÏÃæ½á¹ûµÄ×îºó1Ìõ¾ÍÊÇÎÒÃÇÒªµÃ½á¹ûÁË
ÒªµÃµ½Ã¿×éµÄ½á¹û£¬¿ÉÒÔÏÂÃæÕâÑù
´úÂë:
select t.*,
(
select max(sys_connect_by_
Ïà¹ØÎĵµ£º
£¨1£©Êý¾Ý¿âËøµÄ»ù±¾¸ÅÄî
»ù±¾ËøÀàÐÍÓÐÁ½ÖÖ£ºÅÅËûËø£¨Exclusive locks£©¼ÇΪXËø £¬ ¹²ÏíËø£¨Share locks£©¼ÇΪSËø¡£
ÅÅËûËø£ºÈôÊÂÎñT¶ÔÊý¾ÝD¼ÓXËø£¬ÔòÆäËûÊÂÎñ¶¼²»ÄÜÔÙ¶ÔD¼ÓÈκÎÀàÐ͵ÄËø£¬Ö±ÖÁTÊÍ·ÅDÉϵÄXËø£»Ò»°ãÒªÇóÔÚÐÞ¸ÄÊý¾ÝǰҪÏò¸ÃÊý¾Ý¼ÓÅÅËûËø£¬ËùÒÔÅÅËûËøÓÖ³ÆÎªÐ´Ëø¡£
&nb ......
Ê×ÏÈÐèÒªµÄÈí¼þÓУº
1¡¢
linux_11gR1_database.zip
//¿ÉÔÚOracleµÄ
¹Ù·½ÍøÕ¾
ÏÂÔØµÃµ½£¬ÓÐ1.71GB¹»´ó°É¡£
2¡¢ ±ðÍüÁË×¼±¸Ò»·ÝOracleµÄ¹Ù·½°ïÖúÎĵµ
£¬ÊÇ×îȨÍþµÄ¡£
3¡¢
CentOS-5.2-i386-bin-DVD.iso
//¿ÉÔÚCentOS
¹Ù·½ÍøÕ¾
ÏÂÔØµÃµ½£¬Ó ......
CREATE OR REPLACE PROCEDURE PROC_T(
RESULT OUT NUMBER
)
IS
V_NAME emp%ROWTYPE;
CURSOR CUS_T IS SELECT * from EMP;
BEGIN
OPEN CUS_T;
loop
FETCH CUS_T INTO V_NAME;
exit when cus_t%notfound;
RESULT:=CUS_T%ROWCOUNT;
end loop;
CLOSE CUS_T;
END PROC_T; ......
orastressÖ÷Òª²âÊÔÊý¾Ý¿âµÄѹÁ¦¡£Ëü¿ÉÒÔ²âÊÔÊý¾Ý¿âµÄCPU»òÕßÄÚ´æµÄѹÁ¦£¨ÒÔÖ»¶Á·½Ê½£©£¬Ò²¿ÉÒÔʹÓðüÀ¨ÆÕͨINSERTºÍÖ±½Ó·¾¶INSERTÁ½ÖÖ·½Ê½²âÊÔÊý¾Ý¿âµÄI/OÄÜÁ¦¡£
orastressÖ»ÄÜÔËÐÐÔÚwindowsÏ£¬µ«ËüÒ²¿ÉÒÔ²âÊÔÔ¶³Ì·þÎñÆ÷µÄѹÁ¦¡£
1¡¢ÏÂÔØ
ÏÂÔØµØÖ·ÊÇ
http://www.linxcel.co.uk/orabm/orastress.zip
2¡¢°²×°
oras ......
ÔÚÏàͬ²Ù×÷ϵͳ»·¾³Ï£¬Ïàͬ°æ±¾OracleÊý¾Ý¿âµÄÇ¨ÒÆ±È½Ï¼òµ¥¡£
´óÖ²½Ö裺
1¡¢È·¶¨Ô´»úµÄ²Ù×÷ϵͳÀàÐͺͰ汾£¬Ô´»úÖ÷»úÃû£»Oracle°æ±¾£¬°²×°Ä¿Â¼£¬SID¡£
±¾ÀýÖУ¬Ô´»úΪ£º Win2k Adv£¬ ywxt£¬Oracle v8.17, d:\oracle, orcl
Ä¿±ê»úΪ£ºWin2003£¬ywxt£¬Oracle v8.17, d:\oracle, orcl
......