OracleµÄrownumÔÀíºÍʹÓÃ
ÔÎijö×Ô£ºhttp://tenn.javaeye.com/blog/99339
ÔÚOracle
ÖУ¬Òª°´Ìض¨Ìõ¼þ²éѯǰNÌõ¼Ç¼£¬Óøörownum
¾Í¸ã¶¨ÁË¡£
select * from emp where rownum
<= 5
¶øÇÒÊéÉÏÒ²¸æ½ë£¬²»ÄܶÔrownum
ÓÃ">"£¬ÕâÒ²¾ÍÒâζ×Å£¬Èç¹ûÄãÏëÓÃ
select * from emp where rownum
> 5
ÔòÊÇʧ°ÜµÄ¡£ÒªÖªµÀΪʲô»áʧ°Ü£¬ÔòÐèÒªÁ˽ârownum
±³ºóµÄ»úÖÆ£º
1 Oracle
executes your query.
2 Oracle
fetches the first row and calls it row number 1.
3 Have we gotten past row number meets the criteria? If no, then Oracle
discards the row, If yes, thenOracle
return the row.
4 Oracle
fetches the next row and advances the row number (to 2, and then to 3, and then to 4, and so forth).
5 Go to step 3.
Á˽âÁËÔÀí£¬¾ÍÖªµÀrownum
>²»»á³É¹¦£¬ÒòΪÔÚµÚÈý²½µÄʱºò²éѯ³öµÄÐÐÒѾ±»¶ªÆú£¬µÚËIJ½²é³öÀ´µÄrownum
ÈÔÈ»ÊÇ1,ÕâÑùÓÀÔ¶Ò²²»»á³É¹¦¡£
ͬÑùµÀÀí£¬rownum
Èç¹ûµ¥¶ÀÓÃ=,Ò²Ö»ÓÐÔÚrownum
=1ʱ²ÅÓÐÓá£
¶ÔÓÚrownum
À´ËµËüÊÇoracle
ϵͳ˳Ðò·ÖÅäΪ´Ó²éѯ·µ»ØµÄÐеıàºÅ£¬·µ»ØµÄµÚÒ»ÐзÖÅäµÄÊÇ1£¬µÚ¶þÐÐÊÇ2£¬ÒÀ´ËÀàÍÆ£¬Õâ¸öα×ֶοÉÒÔÓÃÓÚÏÞÖÆ²éѯ·µ»ØµÄ×ÜÐÐÊý£¬¶øÇÒrownum
²»ÄÜÒÔÈκαíµÄÃû³Æ×÷Ϊǰ׺¡£
¾ÙÀý˵Ã÷£º
ÀýÈç±í£ºstudent(ѧÉú)±í£¬±í½á¹¹Îª£º
ID¡¡¡¡¡¡ char(6)¡¡¡¡¡¡¡¡¡¡ --ѧºÅ
name¡¡¡¡¡¡¡¡VARCHAR2(10)¡¡¡¡¡¡--ÐÕÃû create table student (ID char(6), name VARCHAR2(100));
insert into sale values('200001',‘ÕÅÒ»’);
insert into sale values('200002',‘Íõ¶þ’);
insert into sale values('200003',‘ÀîÈý’);
insert into sale values('200004',‘ÕÔËÄ’);
commit;
(1) rownum
¶ÔÓÚµÈÓÚijֵµÄ²éѯÌõ¼þ
Èç¹ûÏ£ÍûÕÒµ½Ñ§Éú±íÖеÚÒ»ÌõѧÉúµÄÐÅÏ¢£¬¿ÉÒÔʹÓÃrownum
=1×÷ΪÌõ¼þ¡£µ«ÊÇÏëÕÒµ½Ñ§Éú±íÖеڶþÌõѧÉúµÄÐÅÏ¢£¬Ê¹ÓÃrownum
=2½á¹û²é²»µ½Êý¾Ý¡£ÒòΪrownum
¶¼ÊÇ´Ó1¿ªÊ¼£¬µ«ÊÇ1ÒÔÉϵÄ×ÔÈ»ÊýÔÚrownum
×öµÈÓÚÅжÏÊÇʱÈÏΪ¶¼ÊÇfalseÌõ¼þ£¬ËùÒÔÎÞ·¨²éµ½rownum
= n£¨n>1µÄ×ÔÈ»Êý£©¡£
SQL> select rownum
,id,name from student where rownum
=1;£¨¿ÉÒÔÓÃÔÚÏ
Ïà¹ØÎĵµ£º
oracle±í¿Õ¼ä²Ù×÷Ïê½â
1
2
3×÷Õߣº À´Ô´£º ¸üÐÂÈÕÆÚ£º2006-01-04
5
6
7½¨Á¢±í¿Õ¼ä
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
¶ÔÓÚÎÒÃÇÕâ¸öÏîÄ¿À´Ëµ£¬Êý¾Ý¿âµÄ´æÈ¡µÄÐÔÄܾö¶¨ÁËÊý¾ÝÌṩµÄÐÔÄÜ¡£ÓÅ»¯µÄ´óÖµÄÔÀíÖ»ÓÐÁ½¸ö£ºÒ»ÊÇÊý¾Ý·Ö¿é´æ·Å£¬±ãÓÚÊý¾ÝµÄת´¢ºÍ¹ÜÀí£»¶þÊÇÖм䴦Àí£¬Ìá¸ßÊý¾ÝÌṩµÄËÙ¶È¡£
»ùÓÚÉÏÃæÁ½¸ö¸ù±¾µÄÔÀí£¬½èÖúÓÚÊý¾Ý²Ö¿âµÄ¸ÅÄÁоÙÊý¾Ý¿âµÄÓÅ»¯·½Ê½£º
1£® ·ÖÇø
ÔÚÊý¾Ý²Ö¿âÖУ¬ÊÂʵ±í£¬Ë÷Òý±í£¬Î¬¶È±í·Ö´¦ÓÚÈý¸ö²»Í ......
Êø£¬Ë÷Òý
1¡¢²éÕÒ±íµÄËùÓÐË÷Òý£¨°üÀ¨Ë÷ÒýÃû£¬ÀàÐÍ£¬¹¹³ÉÁУ©£º
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = Òª²éѯµÄ±í
2¡¢²éÕÒ±íµÄÖ÷¼ü£¨°üÀ¨Ãû³Æ£¬¹¹³ÉÁУ©£º
select cu.* from user_cons_columns cu ......
ÅäÖÃÐÅÏ¢Ó¦¸Ã¶¼Ã»ÓÐ´í£¬Çý¶¯Ò²·´¸´¼ÓÔØÁË£¬Ã»ÓÐÎÊÌâ
ÔËÐÐMyeclipse±àÒë¿É¹ý£¬ÔÚÍøÒ³²âÊÔʱ³öÏÖÈçÏ´íÎó£º
java.sql.SQLException: µ÷ÓÃÖÐÎÞЧµÄ²ÎÊý
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError ......
EXP/IMP×¢Ò⣺´ÓÈ«¿âÂß¼±¸·Ý°´Óû§µ¼Èëʱ£¬OracleûÓе¼ÈëJOB£¬²»ÖªµÀÕâ¸öÊÇOracleµÄbug£¬»¹ÊǹÊÒâÕâÑùʵÏֵġ£Õâ¸öÎÊÌâÔÚµ¼ÈëµÄÓû§ÃûºÍµ¼³öµÄÓû§Ãû²»Í¬Ê±³öÏÖ£¬Èç¹ûµ¼ÈëµÄÓû§ÃûºÍµ¼³öµÄÓû§ÃûÒ»Ö£¬Ôò²»»á³öÏÖÕâ¸öÎÊÌâ¡£»³ÒÉÊÇOracleµ÷ÓÃDBMS_IJOB°üʱ³öÏÖµÄÎÊÌâ¡£
×ÜÖ®£¬EXP/IMPµÄʱºòÐèÒª¿¼ÂÇJOB£¬²¢ÔÚ²Ù×÷½áÊøºó¼ì ......