OracleÖÐSQLÓï¾ä½âÎöµÄ²½Öè
ÎÒÃǶ¼ÖªµÀÔÚOracleÖÐÿÌõSQLÓï¾äÔÚÖ´ÐÐ֮ǰ¶¼ÐèÒª¾¹ý½âÎö£¬ÕâÀïÃæÓÖ·ÖΪÈí½âÎöºÍÓ²½âÎö¡£ÄÇôÕâÁ½ÖÖ½âÎöÓкβ»Í¬Ö®´¦ÄØ£¿ËüÃÇÓÖ·Ö±ðÊÇÈçºÎ½øÐнâÎöÄØ£¿OracleÄÚ²¿½âÎöµÄ²½ÖèÓÖÊÇÈçºÎ½øÐеÄÄØ£¿ÏÂÃæÎÒÃǾÍÕâЩ»°Ìâ½øÐй²Í¬Ì½ÌÖ¡£ ÔÚOracleÖдæÔÚÁ½ÖÖÀàÐ͵ÄSQLÓï¾ä£¬Ò»ÀàΪDDLÓï¾ä£¬ËûÃÇÊÇ´ÓÀ´²»»á¹²ÏíʹÓõģ¬Ò²¾ÍÊÇÿ´ÎÖ´Ðж¼ÐèÒª½øÐÐÓ²½âÎö¡£»¹ÓÐÒ»Àà¾ÍÊÇDMLÓï¾ä£¬ËûÃÇ»á¸ù¾ÝÇé¿öÑ¡ÔñҪô½øÐÐÓ²½âÎö£¬ÒªÃ´½øÐÐÈí½âÎö¡£ÔÚOracle 8i OCP½Ì²ÄµÄ023ÖÐ1-12ÓÐ˵Ã÷SQLÓï¾äµÄ½âÎö²½Ö裬µ±Ò»ÌõSQLÓï¾ä´Ó¿Í»§¶Ë½ø³Ì´«µÝµ½·þÎñÆ÷¶Ë½ø³Ìºó£¬ÐèÒªÖ´ÐÐÈçϲ½Ö裺
• ÔÚ¹²Ïí³ØÖÐËÑË÷ SQL Óï¾äµÄÏÖÓи±±¾
• ÑéÖ¤ SQL Óï¾äµÄÓï·¨ÊÇ·ñ׼ȷ
• Ö´ÐÐÊý¾Ý×Öµä²éÕÒÀ´ÑéÖ¤±íºÍÁеĶ¨Òå
• »ñÈ¡¶ÔÏóµÄ·ÖÎöËøÒÔ±ãÔÚÓï¾äµÄ·ÖÎö¹ý³ÌÖжÔÏóµÄ¶¨Òå²»»á¸Ä±ä
• ¼ì²éÓû§·ÃÎÊÒýÓ÷½°¸¶ÔÏóµÄȨÏÞ
• È·¶¨Óï¾äµÄ×î¼ÑÖ´Ðмƻ®
• ½«Óï¾äºÍÖ´Ðмƻ®ÔØÈë¹²ÏíµÄ SQL Çø
Õâ¸öÏÈÈëΪÖ÷µÄ¸ÅÄîÒ»Ö±Õ¼¾Ý×ÅÎÒµÄÄÔº££¬ÎÒÈÏΪӲ½âÎö¾ÍÊÇÉÏÃ漸¸ö²½Öè¡£Ïà¶ÔÓÚÓ²½âÎö£¬Èí½âÎöµÄ²½Öè¾ÍÊÇÉÏÃæµÚÒ»²½ÕÒµ½ÏÖÓÐSQLÓï¾äµÄ¸±±¾ºó£¬Ö»ÐèÒªÑéÖ¤Óû§ÊÇ·ñÓÐȨÏÞÖ´ÐоÍÊÇÁË£¬ÕâÑùÊ¡ÂÔÉÏÃæºÃ¼¸¸ö²½Ö裬Ïà¶ÔÓ²½âÎöÀ´ËµÐÔÄÜ¿ªÏú¾Í·Ç³£Ð¡ÁË¡£¼´Ê¹ÊÇÔÚÂÛ̳ÉϺʹó¼ÒÌÖÂÛʱ£¬ÎÒÒ²Ò»Ö±¼á³ÖÕâ¸ö¿´·¨¡£Ö±µ½Ç°Ò»Ìì¿´ÁËTomµÄ¡¶Effective Oracle By Design¡·ÖйØÓÚÓï¾ä´¦ÀíµÄÕ½ںó£¬ÎÒ²ÅÖªµÀÕâ¸ö×Ô¼ºÒ»Ö±¼á³ÖµÄ¹ÛµãÊÂʵÉÏÊÇ´íÎóµÄ¡£
ÊÂʵÉÏ£¬ÔÚOracleÖÐSQLÓï¾äµÄ½âÎö²½ÖèÈçÏ£º
1¡¢ Óï·¨¼ì²â¡£ÅжÏÒ»ÌõSQLÓï¾äµÄÓï·¨ÊÇ·ñ·ûºÏSQLµÄ¹æ·¶£¬±ÈÈçÖ´ÐУºSQL> selet * from emp£»ÎÒÃǾͿÉÒÔ¿´³öÓÉÓÚSelect¹Ø¼ü×ÖÉÙÁËÒ»¸ö“c”£¬ÕâÌõÓï¾ä¾ÍÎÞ·¨Í¨¹ýÓï·¨¼ìÑéµÄ²½ÖèÁË¡£
2¡¢ ÓïÒå¼ì²é¡£Óï·¨ÕýÈ·µÄSQLÓï¾äÔÚ½âÎöµÄµÚ¶þ¸ö²½Öè¾ÍÊÇÅжϸÃSQLÓï¾äËù·ÃÎÊµÄ±í¼°ÁÐÊÇ·ñ׼ȷ£¿Óû§ÊÇ·ñÓÐȨÏÞ·ÃÎÊ»ò¸ü¸ÄÏàÓ¦µÄ±í»òÁУ¿±ÈÈçÈçÏÂÓï¾ä£º
SQL> select * from emp;
select * from emp
*
ERROR at line 1:
ORA-00942: table or view does not exist
ÓÉÓÚ²éѯÓû§Ã»Óпɹ©·ÃÎʵÄemp¶ÔÏó£¬Òò´Ë¸ÃSQLÓï¾äÎÞ·¨Í¨¹ýÓïÒå¼ì²é¡£
3¡¢ ¼ì²é¹²Ïí³ØÖÐÊÇ·ñÓÐÏàͬµÄÓï¾ä´æÔÚ¡£¼ÙÈçÖ´ÐеÄSQLÓï¾äÒѾÔÚ¹²Ïí³ØÖдæÔÚͬÑùµÄ¸±±¾£¬ÄÇô¸ÃSQLÓï¾ä½«»á±»Èí½âÎö£¬Ò²¾ÍÊÇ¿ÉÒÔÖØÓÃÒѽâÎö¹ýµÄÓï¾äµÄÖ´Ðмƻ®ºÍÓÅ»¯·½°¸£¬¿ÉÒÔºöÂÔÓï¾ä½âÎö¹ý³ÌÖÐ×îºÄ·Ñ×ÊÔ´µÄ²½Ö裬ÕâÒ²ÊÇÎÒÃÇΪʲôһֱǿµ÷±
Ïà¹ØÎĵµ£º
create or replace procedure aa1 is
v_aa varchar2(20);
v_bb varchar2(20);
va_aa varchar2(20);
va_bb varchar2(20);
va_number_aa number;
message varchar2(60);
CURSOR aas is
SELECT DISTINCT aa.aa, aa.bb from aa;
CURSOR aaas is
SELECT DISTINCT aaa.aa, aaa.bb from aaa where aaa.aa = v_aa ......
Êý¾ÝÎļþ
¡¡¡¡Ã¿Ò»¸öOracleÊý¾Ý¿â¶¼ÓÐÒ»¸ö»ò¶à¸öÎïÀíµÄÊý¾ÝÎļþ,Êý¾Ý¿âÐÅÏ¢(½á¹¹,Êý¾Ý)¶¼±£´æÔÚÕâЩÊý¾ÝÎļþÖÐ,²¢ÇÒÕâЩÎļþÒ²Ö»Oracle²ÅÄܹ»½âÊÍÓë¹ÜÀíÕâЩ´æ´¢.OracleÊý¾ÝÎļþ¾ßÓÐÒÔÏÂһЩÌØÐÔ:
¡¡¡¡1.Ò»¸öÊý¾ÝÎļþ½ö½ö¹ØÁªÒ»¸öÊý¾Ý¿â,Êý¾ÝÎļþÓëÊý¾Ý¿âÖ®¼ä¶ÔÓ¦¹ØϵÊÇÒ»¶ÔÒ»¹Øϵ,µ±È»·´¹ýÊý¾Ý¿âÓëÊý¾ÝÎļþÊÇÒ»¶Ô¶à¹Øϵ. ......
OracleÐÔÄÜÓÅ»¯¼¼ÇÉ
http://tech.it168.com/db/o/2006-06-15/200606151715426.shtml
1.Ñ¡ÓÃÊʺϵÄORACLEÓÅ»¯Æ÷
ORACLEµÄÓÅ»¯Æ÷¹²ÓÐ3ÖÖ:
1.RULE(»ùÓÚ¹æÔò) 2.COST(»ùÓڳɱ¾) 3.CHOOSE(Ñ¡ÔñÐÔ)
ÉèÖÃȱʡµÄÓÅ»¯Æ÷,¿ÉÒÔͨ¹ý¶Ôinit.oraÎļþÖÐOPTIMIZER_MODE²ÎÊ ......
Éó¼ÆÊÓͼ
STMT_AUDIT_OPTION_MAP -- Éó¼ÆÑ¡ÏîÀàÐÍ´úÂë
AUDIT_ACTIONS -- action´úÂë
ALL_DEF_AUDIT_OPTS -- ¶ÔÏó´´½¨Ê±Ä¬ÈϵĶÔÏóÉó¼ÆÑ¡Ïî
DBA_STMT_AUDIT_OPTS -- µ±Ç°Êý¾Ý¿âϵͳÉó¼ÆÑ¡Ïî
DBA_PRIV_AUDIT_OPTS -- ȨÏÞÉó ......
²éѯËÙ¶ÈÂýµÄÔÒòºÜ¶à£¬³£¼ûÈçϼ¸ÖÖ£º
¡¡¡¡1¡¢Ã»ÓÐË÷Òý»òÕßûÓÐÓõ½Ë÷Òý(ÕâÊDzéѯÂý×î³£¼ûµÄÎÊÌ⣬ÊdzÌÐòÉè¼ÆµÄȱÏÝ)
¡¡¡¡2¡¢I/OÍÌÍÂÁ¿Ð¡£¬ÐγÉÁËÆ¿¾±Ð§Ó¦¡£
¡¡¡¡3¡¢Ã»Óд´½¨¼ÆËãÁе¼Ö²éѯ²»ÓÅ»¯¡£
¡¡¡¡4¡¢ÄÚ´æ²»×ã
¡¡¡¡5¡¢ÍøÂçËÙ¶ÈÂý
¡¡¡¡6¡¢²éѯ³öµÄÊý¾ÝÁ¿¹ý´ó(¿ÉÒÔ²ÉÓöà´Î²éѯ£¬ÆäËûµÄ·½·¨½µµÍÊý¾ÝÁ¿)
¡¡¡¡7¡¢ ......