oracle HINTS µÄʹÓÃ
Õª×ÔÐìÓñ½ðµÄ<<sqlÐÔÄܵĵ÷Õû-×ܽá>>
ÈçºÎʹÓÃhints:
HintsÖ»Ó¦ÓÃÔÚËüÃÇËùÔÚsqlÓï¾ä¿é(statement block£¬ÓÉselect¡¢update¡¢delete¹Ø¼ü×Ö±êʶ)ÉÏ£¬¶ÔÆäËüSQLÓï¾ä»òÓï¾äµÄÆäËü²¿·ÖûÓÐÓ°Ïì¡£È磺¶ÔÓÚʹÓÃunion²Ù×÷µÄ2¸ösqlÓï¾ä£¬Èç¹ûÖ»ÔÚÒ»¸ösqlÓï¾äÉÏÓÐhints£¬Ôò¸Ãhints²»»áÓ°ÏìÁíÒ»¸ösqlÓï¾ä¡£
ÎÒÃÇ¿ÉÒÔʹÓÃ×¢ÊÍ(comment)À´ÎªÒ»¸öÓï¾äÌí¼Óhints£¬Ò»¸öÓï¾ä¿éÖ»ÄÜÓÐÒ»¸ö×¢ÊÍ£¬¶øÇÒ×¢ÊÍÖ»ÄÜ·ÅÔÚSELECT, UPDATE, or DELETE¹Ø¼ü×ֵĺóÃæ
ʹÓÃhintsµÄÓï·¨£º
{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */
or
{DELETE|INSERT|SELECT|UPDATE} --+ hint [text] [hint[text]]...
×¢½â£º
1) DELETE¡¢INSERT¡¢SELECTºÍUPDATEÊDZêʶһ¸öÓï¾ä¿é¿ªÊ¼µÄ¹Ø¼ü×Ö£¬°üº¬ÌáʾµÄ×¢ÊÍÖ»ÄܳöÏÖÔÚÕâЩ¹Ø¼ü×ֵĺóÃæ£¬·ñÔòÌáʾÎÞЧ¡£
2) “+”ºÅ±íʾ¸Ã×¢ÊÍÊÇÒ»¸öhints£¬¸Ã¼ÓºÅ±ØÐëÁ¢¼´¸úÔÚ”/*”µÄºóÃæ£¬Öм䲻ÄÜÓпոñ¡£
3) hintÊÇÏÂÃæ½éÉܵľßÌåÌáʾ֮һ£¬Èç¹û°üº¬¶à¸öÌáʾ£¬Ôòÿ¸öÌáʾ֮¼äÐèÒªÓÃÒ»¸ö»ò¶à¸ö¿Õ¸ñ¸ô¿ª¡£
4) text ÊÇÆäËü˵Ã÷hintµÄ×¢ÊÍÐÔÎı¾
Èç¹ûÄãûÓÐÕýÈ·µÄÖ¸¶¨hints£¬Oracle½«ºöÂÔ¸Ãhints£¬²¢ÇÒ²»»á¸ø³öÈκδíÎó¡£
ʹÓÃÈ«Ì×µÄhints£º
µ±Ê¹ÓÃhintsʱ£¬ÔÚijЩÇé¿öÏ£¬ÎªÁËÈ·±£ÈÃÓÅ»¯Æ÷²úÉú×îÓŵÄÖ´Ðмƻ®£¬ÎÒÃÇ¿ÉÄÜÖ¸¶¨È«Ì×µÄhints¡£ÀýÈ磬Èç¹ûÓÐÒ»¸ö¸´ÔӵIJéѯ£¬°üº¬¶à¸ö±íÁ¬½Ó£¬Èç¹ûÄãֻΪij¸ö±íÖ¸¶¨ÁËINDEXÌáʾ(ָʾ´æÈ¡Â·¾¶ÔڸñíÉÏʹÓÃË÷Òý)£¬ÓÅ»¯Æ÷ÐèÒªÀ´¾ö¶¨ÆäËüÓ¦¸ÃʹÓõķÃÎÊ·¾¶ºÍÏàÓ¦µÄÁ¬½Ó·½·¨¡£Òò´Ë£¬¼´Ê¹Äã¸ø³öÁËÒ»¸öINDEXÌáʾ£¬ÓÅ»¯Æ÷¿ÉÄܾõµÃûÓбØÒªÊ¹ÓøÃÌáʾ¡£ÕâÊÇÓÉÓÚÎÒÃÇÈÃÓÅ»¯Æ÷Ñ¡ÔñÁËÆäËüÁ¬½Ó·½·¨ºÍ´æÈ¡Â·¾¶£¬¶ø»ùÓÚÕâЩÁ¬½Ó·½·¨ºÍ´æÈ¡Â·¾¶£¬ÓÅ»¯Æ÷ÈÏΪÓû§¸ø³öµÄINDEXÌáʾÎÞÓá£ÎªÁË·ÀÖ¹ÕâÖÖÇé¿ö£¬ÎÒÃÇҪʹÓÃÈ«Ì×µÄhints£¬È磺²»µ«Ö¸¶¨ÒªÊ¹ÓõÄË÷Òý£¬¶øÇÒÒ²Ö¸¶¨Á¬½ÓµÄ·½·¨ÓëÁ¬½ÓµÄ˳ÐòµÈ¡£
ÏÂÃæÊÇÒ»¸öʹÓÃÈ«Ì×hintsµÄÀý×Ó£¬ORDEREDÌáʾָ³öÁËÁ¬½ÓµÄ˳Ðò£¬¶øÇÒΪ²»Í¬µÄ±íÖ¸¶¨ÁËÁ¬½Ó·½·¨£º
SELECT /*+ ORDERED INDEX (b, jl_br_balances_n1) USE_NL (j b)
USE_NL (glcc glf) USE_MERGE (gp gsb) */
b.application_id, b.set_of_books_id ,
b.personnel_id, p.vendor_id Personnel,
p.segment1 PersonnelNumber, p.vendor_name Name
fr
Ïà¹ØÎĵµ£º
dc-test2<oracle>sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Feb 25 22:44:25 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL> conn / as sysdba
Connected.
SQL> define
DEFINE _DATE = ......
δʵÑé
ORACLEÊý¾Ý¿â×Ô´øµÄDBMS_JOB¹¦ÄÜ¿ÉÒÔʵÏÖ¶¨Ê±Ö´ÐÐPL/SQLµÄ´æ´¢¹ý³Ì£¬µ«ÊÇÈç¹ûSQLÓï¾äºÜ¸´ÔÓ£¬
SQLÓï¾äºÜ¶à£¬ÒÔ¼°¾³£Òª¸Ä±äSQLÓï¾äµÄд·¨£¬ÓÃдPL/SQL´æ´¢¹ý³ÌµÄ·½·¨ÔÙ¶¨Ê±Ö´Ðлá±È½Ï·±Ëö¡£ºÎ
¿ö»¹ÓÐһЩUNIXϵͳ¹ÜÀíÔ±²»»áдPL/SQL´æ´¢¹ý³Ì£¬ËùÒÔÎÒ½éÉ ......
Ò».·ÖÎöº¯Êý2(rank\dense_rank\row_number)
Ŀ¼
===============================================
1.ʹÓÃrownumΪ¼Ç¼ÅÅÃû
2.ʹÓ÷ÖÎöº¯ÊýÀ´Îª¼Ç¼ÅÅÃû
3.ʹÓ÷ÖÎöº¯ÊýΪ¼Ç¼½øÐзÖ×éÅÅÃû
Ò»¡¢Ê¹ÓÃrownumΪ¼Ç¼ÅÅÃû£º
ÔÚÇ°ÃæÒ»Æª¡¶Oracle¿ª·¢×¨ÌâÖ®£º·ÖÎöº¯Êý¡·£¬ÎÒÃÇÈÏʶÁË·ÖÎöº¯ÊýµÄ»ù±¾Ó¦Óã¬ÏÖÔÚÎÒÃÇÔÙ ......
¿ªÊ¼ÔÚmyeclipse6.5ÖÐDB BROWERн¨ÁËÒ»¸öÊý¾Ý¿âÁ¬½Ó£¬Èçͼ£º
Ò»Á¬½Ó£¬±¨³öÁËÁ½¸ö´íÎó£º
1. ORA-00604 error occurred at recursive SQL level string.
2.ORA-12705: invalid or unknown NLS parameter value.
²é×ÊÁϺó½â¾ö£¨ÆÚ¼äÎÒ»¹¸Ä¹ýtestÓû§µÄÁ¬½ÓȨÏÞ£©£º
½«MyEclipseÖÐeclipseĿ¼ÏµÄeclipse.iniÎļþ£¬° ......
±íµÄ²éÕÒ£º
select * from emp where (sal>500 or job='MANAGER') and ename like 'J%';
ÒýºÅÀï±ßµÄ×Ö·ûÊÇÇø·Ö´óСдµÄ¡£
²éÕÒÖ®ºó°Ñ½á¹ûÅÅÐò£º
select * from emp order by sal asc;
ascÊÇÉýÐò£¬descÊǽµÐò
¶ÔÁÐÖØÃüÃû£¬Ö»Òª´ò¸ö¿Õ¸ñ£¬ºó¸úÐÂÁÐÃû¾Í¿ÉÒÔ
select ename,sal*12+nvl(comm,0)*12 "Äêн" from ......