PL/SQL È¡µÃɾ³ý¼Í¼µÄÌõÊý
ÔõÑùͳ¼ÆPLSQLÓïÑÔÖÐɾ³ýÓï¾äÖ´ÐÐÖ®ºóÒ»¹²É¾³ýÁ˶àÉÙÌõ¼Í¼¡£
OracleʹÓÃÁ½ÖÖ¹â±ê£ºÏÔʽ¹â±êºÍÒþʽ¹â±ê¡£²»¹ÜÓï¾ä·µ»Ø¶àÉÙÌõ¼Í¼£¬PL/SQLΪʹÓõÄÿһÌõUPDATE¡¢DELETEºÍINSERTµÈSQLÃüÁîÒþʽµÄÉùÃ÷Ò»¸ö¹â±ê¡££¨Òª¹ÜÀíSQLÓï¾äµÄ´¦Àí£¬±ØÐëÒþʽµÄ¸øËü¶¨ÒåÒ»¸ö¹â±ê¡££©
ÔÚPL/SQLÖУ¬µ±Ö´ÐÐDMLÓï¾äµÄʱºò£¬»á×Ô¶¯´ò¿ªÒ»¸öÒþʽÓα꣨Óαê¾ÍÀàËÆJDBCÖеÄResultSet£©£¬¶øÏà¹ØÒª±»²Ù×÷µÄÊý¾Ý¶¼ÊÇ»áÏȱ»·ÅÈëÒþʽÓαꡣÒþʽÓαêÓÉORACLE°ïÎÒÃÇ×Ô¶¯¹ÜÀí£¬Èç¹ûÏëÒªÊÖ¶¯½øÐÐһЩ²Ù×÷µÄ»°£¬ÎÒÃÇ¿ÉÒÔʹÓÃÒþʽÓαêµÄÏà¹ØÊôÐÔ¡£È磺
SQL%FOUND ³É¹¦»ñÈ¡¼Ç¼·µ»Øtrue,·ñÔò·µ»Øfalse
SQL%NOTFOUND ³É¹¦»ñÈ¡¼Ç¼·µ»Øtrue,·ñÔò·µ»Øfalse
SQL%ROWCOUNT ·µ»Ø´ÓÓαêÖлñÈ¡µÄ¼Ç¼ÌõÊý
SQL%ISOPEN ×ÜÊÇ·µ»Øfalse
ÀûÓÃÒþʽÓαêÊôÐÔSQL%ROWCOUNT¿ÉÒÔ´ïµ½¼ÆËãɾ³ýÁ˶àÉÙÌõ¼Í¼¡£
dbms_output.put_line('¿ªÊ¼É¾³ý'||v_score||'ÒÔϵÄͬѧ');
DELETE from t_student WHERE s_score<v_score; --ɾ³ý±ÈÊäÈëµÄ³É¼¨¶¼ÒªÉÙµÄѧÉú
IF SQL%FOUND THEN --Èç¹û¿ÉÒÔ´ÓÒþʽÓαêÖлñµÃÊý¾ÝÔò·µ»Øtrue
dbms_output.put_line('ɾ³ýÁË'||SQL%ROWCOUNT||'¸öѧÉú'); --SQL%ROWCOUNT-ɾ³ýµÄѧÉúµÄ¼Ç¼ÌõÊý
ELSE --Èç¹û²»ÄÜ´ÓÒþʽÓαêÖлñµÃÊý¾ÝÔò·µ»Øfalse
dbms_output.put_line('ûÓÐɾ³ý¼Ç¼');
END IF;
²Î¿¼
http://www.haoxiai.net/wangzhanzhizuo/shujuku/61234.html
http://blog.sina.com.cn/s/blog_610239f40100gow4.html
Ïà¹ØÎĵµ£º
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
´ó¼Ò¶¼ÖªµÀ£¬ÓÃPL/SQLÁ¬½ÓOracle£¬ÊÇÐèÒª°²×°Oracle¿Í»§¶ËÈí¼þµÄ¡£ÓÐûҪÏë¹ý²»°²×°Oracle¿Í»§¶ËÖ±½ÓÁ¬½ÓOracleÄØ£¿
ÆäʵÎÒÒ»Ö±ÏëÕâÑù×ö£¬ÒòΪÕâ¸ö¿Í»§¶ËʵÔÚÌ«ÈÃÈËÌÖÑáÁË£¡£¡£¡²»µ«»á°²×°Ò»¸öJDK£¬¶øÇÒ»¹»á°Ñ×Ô¼º·ÅÔÚ»·¾³±äÁ¿µÄ×îÇ°Ãæ£¬»áÔì³É²»Ð ......
ͨÓñí±í´ïʽ Common Table Expressions
ͨÓñí±í´ïʽ£¨CTE£©ÊÇÒ»¸ö¿ÉÒÔÓɶ¨ÒåÓï¾äÒýÓõÄÁÙʱ±íÃüÃûµÄ½á¹û¼¯¡£ÔÚËûÃǵļòµ¥ÐÎʽÖУ¬Äú¿ÉÒÔ½«CTEÊÓΪÀàËÆÓÚÊÓͼºÍÅÉÉú±í»ìºÏ¹¦ÄܵĸĽø°æ±¾¡£ÔÚ²éѯµÄfrom×Ó¾äÖÐÒýÓÃCTEµÄ·½Ê½ÀàËÆÓÚÒýÓÃÅÉÉú±íºÍÊÓͼµÄ·½Ê½¡£Ö»Ð붨ÒåCTEÒ»´Î£¬¼´¿ÉÔÚ²éѯÖжà´ÎÒýÓÃËü¡£ÔÚCTEµÄ¶¨ÒåÖУ¬¿ÉÒÔÒ ......
TOP ÔöÇ¿¡£¿ÉÒÔÖ¸¶¨Ò»¸öÊý×Ö±í´ïʽ£¬ÒÔ·µ»ØÒªÍ¨¹ý²éѯӰÏìµÄÐÐÊý»ò°Ù·Ö±È£¬»¹¿ÉÒÔ¸ù¾ÝÇé¿öʹÓñäÁ¿»ò×Ó²éѯ¡£
¿ÉÒÔÔÚDELETE¡¢UPDATEºÍINSERT²éѯÖÐʹÓÃTOPÑ¡Ïî¡£
2¡¢¸üºÃµØÌæ»»SET ROWCOUNTÑ¡Ïʹ֮¸üΪÓÐЧ¡£
OUTPUT
1¡¢SQL Server 2005ÒýÈëÒ»¸öеÄOUTPUT×Ӿ䣬ÒÔʹÄú¿ÉÒÔ³åÐÞ¸ÄÓï¾ä(INSERT¡¢UPDATE¡¢DELETE)ÖÐ ......
SQL2005ÖÐrow_number( )¡¢rank( )¡¢dense_rank( )¡¢ntile( )º¯ÊýµÄÓ÷¨(2) ÊÕ²Ø
SQL server 2005ÐÂÔöµÄ¼¸¸öº¯Êý,·Ö±ðÊÇrow_number( )¡¢rank( )¡¢,DENSE_RANK( )¡¢ntile( )ÏÂÃæÒÔʵÀý·Ö±ð¼òµ¥½²½â¡£
1.row_number( )
ÏÈÀ´µãÊý¾Ý,ÏȽ¨¸ö±í
SET NOCOUNT ......