OracleÖÐCursor½éÉܺÍʹÓÃ
Ò» ¸ÅÄî
ÓαêÊÇSQLµÄÒ»¸öÄڴ湤×÷Çø£¬ÓÉϵͳ»òÓû§ÒÔ±äÁ¿µÄÐÎʽ¶¨Òå¡£ÓαêµÄ×÷ÓþÍÊÇÓÃÓÚÁÙʱ´æ´¢´ÓÊý¾Ý¿âÖÐÌáÈ¡µÄÊý¾Ý¿é¡£ÔÚijЩÇé¿öÏ£¬ÐèÒª°ÑÊý¾Ý´Ó´æ·ÅÔÚ´ÅÅ̵ıíÖе÷µ½¼ÆËã»úÄÚ´æÖнøÐд¦Àí£¬×îºó½«´¦Àí½á¹ûÏÔʾ³öÀ´»ò×îÖÕд»ØÊý¾Ý¿â¡£ÕâÑùÊý¾Ý´¦ÀíµÄËٶȲŻáÌá¸ß£¬·ñÔòƵ·±µÄ´ÅÅÌÊý¾Ý½»»»»á½µµÍЧÂÊ¡£
¶þ ÀàÐÍ
CursorÀàÐͰüº¬ÈýÖÖ: ÒþʽCursor£¬ÏÔʽCursorºÍRef Cursor£¨¶¯Ì¬Cursor£©¡£
1£® ÒþʽCursor:
1).¶ÔÓÚSelect …INTO…Óï¾ä£¬Ò»´ÎÖ»ÄÜ´ÓÊý¾Ý¿âÖлñÈ¡µ½Ò»ÌõÊý¾Ý£¬¶ÔÓÚÕâÖÖÀàÐ͵ÄDML SqlÓï¾ä£¬¾ÍÊÇÒþʽCursor¡£ÀýÈ磺Select /Update / Insert/Delete²Ù×÷¡£
2)×÷Ó㺿ÉÒÔͨ¹ýÒþʽCusorµÄÊôÐÔÀ´Á˽â²Ù×÷µÄ״̬ºÍ½á¹û£¬´Ó¶ø´ïµ½Á÷³ÌµÄ¿ØÖÆ¡£CursorµÄÊôÐÔ°üº¬£º
SQL%ROWCOUNT ÕûÐÍ ´ú±íDMLÓï¾ä³É¹¦Ö´ÐеÄÊý¾ÝÐÐÊý
SQL%FOUND ²¼¶ûÐÍ ÖµÎªTRUE´ú±í²åÈ롢ɾ³ý¡¢¸üлòµ¥Ðвéѯ²Ù×÷³É¹¦
SQL%NOTFOUND ²¼¶ûÐÍ ÓëSQL%FOUNDÊôÐÔ·µ»ØÖµÏà·´
SQL%ISOPEN ²¼¶ûÐÍ DMLÖ´Ðйý³ÌÖÐÎªÕæ£¬½áÊøºóΪ¼Ù
3) ÒþʽCursorÊÇϵͳ×Ô¶¯´ò¿ªºÍ¹Ø±ÕCursor.
ÏÂÃæÊÇÒ»¸öSample£º
Set Serveroutput on;
begin
update t_contract_master set liability_state = 1 where policy_code = '123456789';
if SQL%Found then
dbms_output.put_line('the Policy is updated successfully.');
commit;
else
dbms_output.put_line('the policy is updated failed.');
end if;
end;
/
2£® ÏÔʽCursor£º
£¨1£© ¶ÔÓÚ´ÓÊý¾Ý¿âÖÐÌáÈ¡¶àÐÐÊý¾Ý£¬¾ÍÐèҪʹÓÃÏÔʽCursor¡£ÏÔʽCursorµÄÊôÐÔ°üº¬£º
ÓαêµÄÊôÐÔ ·µ»ØÖµÀàÐÍ Òâ Òå
%ROWCOUNT ÕûÐÍ »ñµÃFETCHÓï¾ä·µ»ØµÄÊý¾ÝÐÐÊý
%FOUND ²¼¶ûÐÍ ×î½üµÄFETCHÓï¾ä·µ»ØÒ»ÐÐÊý¾ÝÔòÎªÕæ£¬·ñÔòΪ¼Ù
%NOTFOUND ²¼¶ûÐÍ Óë%FOUNDÊôÐÔ·µ»ØÖµÏà·´
%ISOPEN ²¼¶ûÐÍ ÓαêÒѾ´ò¿ªÊ±ÖµÎªÕ棬·ñÔòΪ¼Ù
£¨2£© ¶ÔÓÚÏÔʽÓαêµÄÔËÓ÷ÖΪËĸö²½Ö裺
¶¨ÒåÓαê---Cursor [Cursor Name] IS;
´ò¿ªÓαê---Open [Cursor Name];
²Ù×÷Êý¾Ý---Fetch [Cursor name]
¹Ø±ÕÓαê---Close [Cursor Name],Õâ¸öStep¾ø¶Ô²»¿ÉÒÔÒÅ©¡£
£¨3£©ÒÔÏÂÊ
Ïà¹ØÎĵµ£º
ôßÉÏͨ¹ýÔ¤±àÒë²ûÊöµÀ¹²Ïí³Ø×îºóµ½SGA£¬ÕâÀï½øÒ»²½ËµÃ÷Ò»ÏÂSGAÖÐÁíÒ»¸ö´ó¿é£¬Êý¾Ý»º³åÇø£¬Ð¯´øÌá¼°Ò»µãÊý¾ÝÎļþºÍ±í¿Õ¼ä£¬ºóÐø×¨ÃÅ»á˵Ã÷Õâ¿é¡£
Ê×ÏÈÁ˽âÏÂSGAÖÖ´óÖÂÓÐÄÇЩ¶«Î÷£¬ÕâЩ¶«Î÷Ëæ×ÅÊý¾Ý¿â°æ±¾µÄÔö¼Ó»áÓÐËùÔö¼Ó£¬²»¹ý´óÖÂÉÏÓ¦¸ÃÒ»Ö£¬ÕâÒ²ÊÇ»ù±¾ËùÓеÄÌåϵ½á¹¹¶¼»áÃèÊöµÄ¶«Î÷£º
ÔÚÈÏʶÊý¾Ý»º³åÇøÇ°£¬ÏȼÇס¼¸¸ö³ ......
µ¼³öÊý¾Ý¿â£ºexp Óû§Ãû/ÃÜÂë@Êý¾Ý¿âÃû file=ÅÌ·û£º/Îļþ¼Ð/ÎļþÃû.bmp owner=Óû§ »ò exp Óû§Ãû/ÃÜÂë@Êý¾Ý¿âÃû file=ÅÌ·û£º/Îļþ¼Ð/ÎļþÃû.bmp full=y
µ¼ÈëÊý¾Ý¿â£ºimp Óû§Ãû/ÃÜÂë@Êý¾Ý¿âÃû file=µ¼³öµÄÎļþ full=y ......
½ñÌì×ö¸ß¼¶¸´ÖÆÊµÑ飬ִÐе½Ìí¼Ómaster siteʱÓöµ½´ËÎÊÌ⣬ÉÏÍøËÑÁËËÑ£¬ÓÐÈçϼ¸ÖÖÒâ¼û£º
1.ÊÚȨ¹ý³Ì²»¶Ô——Çë×Ðϸ°´ÕÕÎĵµÉϵÄ˵Ã÷½øÐС£
2.°æ±¾ÎÊÌâ——¿É²é¿´v$optionÊÓͼÖÐÏà¹Ø²ÎÊýÊÇ·ñΪtrue¡£
3.°æ±¾ÎÊÌâ——ÓиöתÌùmetalinkµÄÎÄÕÂÉÏ˵ֻÓÐoracleÆóÒµ°æÖ§³Ö¸ß¼¶¸´ÖÆ¡£
¶¼Ã»Óн⾠......
ÔÚORACLEʵÀýÆô¶¯Ê±³ýÁË·ÖÅäÒ»¿éºÜ´óÇøÓòµÄÄÚ´æÍ⣬»¹»áÆô¶¯Ò»ÏµÁеĽø³Ì¡£OracleÖеĽø³ÌÓÐÄÄÐ©ÌØµã£¿
ORACLE½ø³Ì¿ÉÒÔ·ÖΪÓû§½ø³Ì¡¢·þÎñÆ÷½ø³Ì¡¢ºǫ́½ø³Ì¡£
Óû§½ø³Ì£ºÓû§Á¬½ÓÊý¾Ý¿âʱ»á´´½¨Ò»¸öÓû§½ø³Ì£¬¸Ã½ø³ÌÓÃÓںͷþÎñÆ÷½øÐлỰ£¬ÏòÊý¾Ý¿â·þÎñÆ÷·¢ÉúÇëÇ󣬽ÓÊÕÊý¾Ý¿âµÄÏìÓ¦¡£
·þÎñÆ÷½ø³Ì£ºÓÉORACLEÊý¾Ý¿â·þÎñÆ÷ ......