oracle·ÖÒ³
racle·ÖÒ³²éѯÓï¾ä
ĬÈÏ·ÖÀà 2009-12-23 18:17 ÔĶÁ43 ÆÀÂÛ0 ×ֺţº ´ó´ó ÖÐÖРСС Oracle·ÖÒ³²éѯÓï¾ä
±¾ÎÄ×ªÔØ×Ô£ºyangtingkun.itpub.net/post/468/100278
OracleµÄ·ÖÒ³²éѯÓï¾ä»ù±¾ÉÏ¿ÉÒÔ°´ÕÕ±¾Îĸø³öµÄ¸ñʽÀ´½øÐÐÌ×Óá£
·ÖÒ³²éѯ¸ñʽ£º
sql ´úÂë
SELECT * from
(
SELECT A.*, ROWNUM RN
from (SELECT * from TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
ÆäÖÐ×îÄÚ²ãµÄ²éѯSELECT * from TABLE_NAME±íʾ²»½øÐзҳµÄÔʼ²éѯÓï¾ä¡£ROWNUM <= 40ºÍRN >= 21¿ØÖÆ·ÖÒ³²éѯµÄÿҳµÄ·¶Î§¡£
ÉÏÃæ¸ø³öµÄÕâ¸ö·ÖÒ³²éѯÓï¾ä£¬ÔÚ´ó¶àÊýÇé¿öÓµÓнϸߵÄЧÂÊ¡£·ÖÒ³µÄÄ¿µÄ¾ÍÊÇ¿ØÖÆÊä³ö½á¹û¼¯´óС£¬½«½á¹û¾¡¿ìµÄ·µ»Ø¡£ÔÚÉÏÃæµÄ·ÖÒ³²éѯÓï¾äÖУ¬ÕâÖÖ¿¼ÂÇÖ÷ÒªÌåÏÖÔÚWHERE ROWNUM <= 40Õâ¾äÉÏ¡£
Ñ¡ÔñµÚ21 µ½40Ìõ¼Ç¼´æÔÚÁ½ÖÖ·½·¨£¬Ò»ÖÖÊÇÉÏÃæÀý×ÓÖÐչʾµÄÔÚ²éѯµÄµÚ¶þ²ãͨ¹ýROWNUM <= 40À´¿ØÖÆ×î´óÖµ£¬ÔÚ²éѯµÄ×îÍâ²ã¿ØÖÆ×îСֵ¡£¶øÁíÒ»ÖÖ·½Ê½ÊÇÈ¥µô²éѯµÚ¶þ²ãµÄWHERE ROWNUM <= 40Óï¾ä£¬ÔÚ²éѯµÄ×îÍâ²ã¿ØÖÆ·ÖÒ³µÄ×îСֵºÍ×î´óÖµ¡£ÕâÊÇ£¬²éѯÓï¾äÈçÏ£º
sql ´úÂë
SELECT * from
(
SELECT A.*, ROWNUM RN
from (SELECT * from TABLE_NAME) A
)
WHERE RN BETWEEN 21 AND 40
¶Ô±ÈÕâÁ½ÖÖд·¨£¬¾ø´ó¶àÊýµÄÇé¿öÏ£¬µÚÒ»¸ö²éѯµÄЧÂʱȵڶþ¸ö¸ßµÃ¶à¡£
ÕâÊÇÓÉÓÚCBO ÓÅ»¯Ä£Ê½Ï£¬Oracle¿ÉÒÔ½«Íâ²ãµÄ²éѯÌõ¼þÍÆµ½ÄÚ²ã²éѯÖУ¬ÒÔÌá¸ßÄÚ²ã²éѯµÄÖ´ÐÐЧÂÊ¡£¶ÔÓÚµÚÒ»¸ö²éѯÓï¾ä£¬µÚ¶þ²ãµÄ²éѯÌõ¼þWHERE ROWNUM <= 40¾Í¿ÉÒÔ±»OracleÍÆÈëµ½ÄÚ²ã²éѯÖУ¬ÕâÑùOracle²éѯµÄ½á¹ûÒ»µ©³¬¹ýÁËROWNUMÏÞÖÆÌõ¼þ£¬¾ÍÖÕÖ¹²éѯ½«½á¹û·µ»ØÁË¡£
¶øµÚ¶þ¸ö²éѯÓï¾ä£¬ÓÉÓÚ²éѯÌõ¼þBETWEEN 21 AND 40ÊÇ´æÔÚÓÚ²éѯµÄµÚÈý²ã£¬¶øOracleÎÞ·¨½«µÚÈý²ãµÄ²éѯÌõ¼þÍÆµ½×îÄڲ㣨¼´Ê¹ÍƵ½×îÄÚ²ãҲûÓÐÒâÒ壬ÒòΪ×îÄÚ²ã²éѯ²»ÖªµÀRN´ú±íʲô£©¡£Òò´Ë£¬¶Ô ÓÚµÚ¶þ¸ö²éѯÓï¾ä£¬Oracle×îÄڲ㷵»Ø¸øÖмä²ãµÄÊÇËùÓÐÂú×ãÌõ¼þµÄÊý¾Ý£¬¶øÖмä²ã·µ»Ø¸ø×îÍâ²ãµÄÒ²ÊÇËùÓÐÊý¾Ý¡£Êý¾ÝµÄ¹ýÂËÔÚ×îÍâ²ãÍê³É£¬ÏÔÈ»Õâ¸öЧÂÊ Òª±ÈµÚÒ»¸ö²éѯµÍµÃ¶à¡£
ÉÏÃæ·ÖÎöµÄ²éѯ²»½ö½öÊÇÕë¶Ôµ¥±íµÄ¼òµ¥²éѯ£¬¶ÔÓÚ×îÄÚ²ã²éѯÊÇ
Ïà¹ØÎĵµ£º
¼ÌÐøÌÖÂÛÈ«ÎÄË÷ÒýµÄDATASTOREÊôÐÔ£¬½éÉÜMULTI_COLUMN_DATASTORE¡£
Èç¹û±»Ë÷ÒýµÄÎÄÕÂÊDZ£´æÔÚÊý¾Ý¿âÖУ¬µ«ÊÇÄÚÈÝ·Ö²¼ÔÚ¶à¸öÁÐÖУ¬ÄÇô¿ÉÒÔͨ¹ý½¨Á¢Ò»¸öMULTI_COLUMN_DATASTOREÀ´Ë÷ÒýÍêÕûµÄÎÄÕ£º
SQL> CREATE TABLE T (ID NUMBER, DOC1 VARCHAR2(4000), DOC2 VARCHAR2(4000), DOC3 VARCHAR2(4000));
±íÒÑ´´½ ......
½éÉÜÍêOracleÈ«ÎÄË÷ÒýµÄFILTERÊôÐÔ£¬¼ÌÐø½éÉÜOracleµÄLEXERÊôÐÔ¡£
OracleÈ«ÎÄË÷ÒýµÄLEXERÊôÐÔÓÃÓÚ´¦Àí¸÷ÖÖ²»Í¬µÄÓïÑÔ¡£×î»ù±¾µÄÓ¢ÎÄʹÓÃBASE_FILTER£¬¶øÈç¹ûÐèҪʹÓÃÖÐÎÄÔò¿ÉÒÔʹÓÃCHINESE_VGRAM_LEXER»òCHINESE_LEXER¡£
ÕâÆªÎÄÕ¼òµ¥ËµÃ÷BASIC_LEXERÊôÐÔ¡£BASIC_LEXERÊôÐÔÖ§³Ö¶àÖÖÓïÑÔ£¬±ÈÈçÓ¢Óï¡¢µÂÓï¡¢ºÉÀ¼ÓŲ ......
OracleÈ«ÎÄË÷ÒýµÄWORDLISTÊôÐÔÓÃÀ´ÉèÖÃÄ£ºý²éѯºÍͬ´Ê¸ù²éѯ£¬ÁíÍâWORDLISTÊôÐÔ»¹Ö§³ÖͨÅä·û²éѯ¡£
OracleµÄWORDLISTÊôÐÔÖ»ÓÐBASIC_WORDLISTÒ»ÖÖ£¬ÏÂÃæ¿´Ò»¸öBASIC_WORDLISTµÄÀý×Ó£º
1.Stemmer attributeÊÇÓÃÀ´²éѯÓôʸùµÄÊý¾Ý
SQL> create table stemmer_tbl(id number primary key,docs clob);
Table created.
S ......
ÕâÆªÎÄÕ½éÉܵÄÊÇORACLE CTXCATË÷ÒýµÄINDEX SET£¬Ò²ÊÇCTXCATË÷ÒýÌØÓеÄÊôÐÔ¡£
CTXCAT
Ë÷ÒýÊÇCONTEXTË÷ÒýµÄ¼ò»¯°æ£¬CTXCATË÷ÒýÖ§³ÖµÄPREFERENCE°üÀ¨£ºLEXER¡¢STOPLIST¡¢WORDLISTºÍSTORAGE
²ÎÊý¡£²»Ö§³ÖÆäËûµÄ²ÎÊýÈ磺DATASTORE¡¢FILTER¡¢SECTION
GROUP¡£ËäȻ֧³ÖLEXERµ«²»Ö§³ÖTHEME²éѯ£¬¶øÇÒ²»Ö§³ÖFORMAT¡¢CHARSETºÍLAN ......
JavaÖ´ÐÐstm.executeQuery(sql); ʱ×ÜÊÇÌáʾ£ºjava.sql.SQLException: ORA-00911: ÎÞЧ×Ö·û£¬ÅªÁ˰ëÌ컹Êdzö´í£¬ÎÞÄΣ¬ÄóöɱÊÖïµ£¬Googleһϣ¬Ôε¹£¬·¢ÏÖÎÒµÄString sql = “select detail from test.result where person_id = 4; "£¬Ã²ËÆÃ»´íÎó°É£¬½á¹ûÎÒÎÒ±ØÐëÈ¥µô×îºó·ÖºÅ£¬±¾À´ÊÇÏë¸ãµÃרҵµã£¬¾Í¼Û¼Ó¸ö·Ö ......