Oracle CURSORµÄ¼òµ¥Ó÷¨
ǰÑÔ£º
OracleµÄ¶Ô±í²Ù×÷ÖÐÓÐÒ»ÖÖÀàËÆÓÚDataSetµÄ¶ÔÏó²Ù×÷·½·¨CURSOR£¬Ëü¿ÉÒÔͨ¹ý½¨Á¢±íµÄ²Ù×÷¶ÔÏó»òÕß˵±íµÄÖ¸Õë¶ÔÏóÀ´´ïµ½´Ó±íÀïÃæÌáÈ¡Êý¾ÝµÄ²Ù×÷¡£
˵Ã÷£º
Ò»°ãͨ¹ýSQLÓïÑÔ¿ÉÒÔÕë¶Ôij¸ö±íµÄijһÐлò¶àÐÐÊý¾Ý½øÐвÙ×÷±ÈÈç˵SELECT£¬UPDATEµÈ¡£ÕâЩ²Ù×÷±ØÐëÒÔSQLÓï¾äµÄÓï·¨¸ñʽÀ´±»½âÊÍÆ÷½âÊͲ¢Ö´ÐС£ÔÚʵ¼Ê±ä³ÉÖо³£Óõ½£¬ÌرðÊÇÓñà³ÌÓïÑÔÀ´¶ÔÊý¾Ý¿â²Ù×÷ʱ¸üÊDZز»¿ÉÉÙ¡£µ±È»Êý¾Ý¿âÒ²²»ÊDz»ÄÜ×Ô¼ºÀ´×öһЩ´¦ÀíµÄ£¬¼òµ¥µÄÊý¾Ý²Ù×÷µÄ»°£¬ÏñORACLEÕâÑùµÄÊý¾Ý¿â¿ÉÒÔÓÃ×ÔÉíµÄPL/SQLÓïÑÔÀ´ÊµÏÖ¡£²»½öÖ´ÐÐËٶȿ죬¶øÇÒ½ÚÊ¡ÍøÂç¡£ÒòΪËüÊÇÖ±½ÓÔÚÊý¾Ý¿â¶ËÖ´Ðеġ£
CURSOR¾ÍÊÇPL/SQLÖеÄÒ»ÖÖʵÏÖ¶Ô±íµÄ¶ÔÏ󻯲Ù×÷·½·¨¡£
ËûÒ»¹²·ÖΪÁ½ÖÖ£º
ÏÔʽÐÍ
½âÊÍ£º¹ËÃû˼Ò壬¾ÍÊÇÔÚ³ÌÐòÊéд¹ý³ÌÖÐÀûÓô´½¨±í¶ÔÏóµÄ¹ý³ÌÖУ¬Ã÷È·µÄʹÓñäÁ¿Ãû¡£
°µÊ½ÐÍ
½âÊÍ£º²»ÊÇÓñäÁ¿Ãû£¬¶øÓüòµ¥µÄÓï·¨À´Íê³É¶ÔÏóµÄ²Ù×÷¡£ORACLEÀïÃæÒѾ¶¨ÒåºÃÁË£¬Ö»ÐèÒªµ÷ÓþͿÉÒÔʹÓá£
¹ØÓÚPL/SQLµÄÊéд¸ñʽ£¬ÕâÀïÊ¡ÂÔ¡£
ÏÔʽÐ͵ÄCURSORÔÚ¶¨Òå¹ý³ÌÖбØÐëдÔÚ¶¨ÒåÇø¼ä
Ò²¾ÍÊÇ˵ÐèҪдÔÚ IS ..... BEGIN »òÕß DECLARE .... BEGIN¡£
¶øÖ´ÐеÄʱºò¾ÍҪдÔÚ BEGIN.....ENDÁË¡£
¿´²»Ã÷°×µÄ»°£¬¾Í¿´Àý×ÓÁË¡£
CREATE OR REPLACE PROCEDURE AAA
IS
CURSOR BBB IS
SELECT CCC from TABLE ;
vBBB BBB%ROWTYPE;
BEGIN
OPEN BBB;
LOOP
FETCH BBB INTO vBBB;
EXIT WHEN BBB%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(vBBB);
END LOOP;
CLOSE BBB;
END;
/
Ê×Ïà´´½¨ÁËÒ»¸öPROCEDUREÃû×ÖΪAAA£¬È»ºóÔÚ¶¨ÒåÇø¼äÀïÃæ¶¨ÒåÁËÒ»¸öCURSORÃû×ÖΪBBB£¬
Á¬½Ó±íTABLE²¢´ÓÖжÁÈ¡ÁÐCCC¡£Ö®ºó¶¨ÒåÁËÒ»¸öÐÐÀàÐ͵ıäÁ¿ÓÃÓڴ洢ÿһÐеÄÊý¾Ý¡£
µ½´Ë£¬±íµÄ¶ÔÏóÒÔ¼°¶ÁÈ¡Êý¾ÝµÄÌõ¼þ»¹ÓÐÊý¾Ý´æ´¢ÓõıäÁ¿¾Í¶¼¶¨ÒåºÃÁË¡£
È»ºóOPENÕâ¸ö±í¶ÔÏ󣬽øÈëÑ»·¡£Ã¿Ñ»·Ò»´ÎÖ¸Õë±ã»á×Ô¶¯ÏòºóÒÆ¶¯£¬½«BBBÀïÃæµÄÊý¾ÝÒÔÐÐΪµ¥Î»¶Á³ö´æÈëvBBB¡£È»ºóµ±BBBµÄÖ¸Õëµ½×îºóÒ²¾ÍÊÇ˵Êý¾Ý¶Áµ½×îºóûÓÐÁ˵Äʱºò±ãÍ˳öÑ»·²¢ÇҹرÕBBB¡£
DBMS_OUTPUT.PUT_LINEÊÇÓÃÀ´ÔÚÆÁÄ»ÉÏ´òÓ¡vBBBÓõġ£
ÓëÖ®Ïàͬ OPEN FETCH CLOSE µÄÓï·¨¸ñʽ¿´À´Í¦Âé·³µÄ¡£ÕâÑùµÄ»°¾ÍÓÃFORÀ´´úÌæÒ²¿ÉÒÔ
BEGIN
FOR vBBB IN BBB;
LOOP
DBMS_OUTPUT.PUT_LINE(vBBB);
END LOOP;
END;
Õâ¾ÍʡʶàÁË¡£Òâ˼ҲһĿÁËÈ»¡£ÒòΪSURSOR¶¨ÒåÁ˱äÀ´Ãû×
Ïà¹ØÎĵµ£º
401. V$PQ_TQSTAT
°üº¬²¢ÐÐÖ´ÐвÙ×÷ÉϵÄͳ¼ÆÁ¿.°ïÖúÔÚÒ»¸ö²éѯÖвⶨ²»Æ½ºâµÄÎÊÌâ.
402. V$PROCESS
°üº¬¹ØÓÚµ±Ç°»î¶¯½ø³ÌµÄÐÅÏ¢.
403. V$PROXY_ARCHIVEDLOG
°üº¬¹éµµÈÕÖ¾±¸·ÝÎļþµÄÃèÊöÐÅÏ¢,ÕâЩ±¸·ÝÎļþ´øÓÐÒ»¸ö³ÆÎªPROXY¸±±¾µÄÐÂÌØÕ÷.
404. V$PROXY_DATAFILE
°üº¬Êý¾ÝÎļþºÍ¿ØÖÆÎļþ±¸·ÝµÄÃèÊöÐÅÏ¢,ÕâЩ±¸·ÝÎļþ´ ......
485. DBA_2PC_NEIGHBORS
°üº¬Î´¾öÊÂÎñµÄÒýÈë»òÁ÷³öµÄÁ¬½ÓÐÅÏ¢.
486. DBA_ALL_TABLES
ÏÔʾÊý¾Ý¿âÖÐËùÓбíµÄÃèÊö.
487. DBA_APPLICATION_ROLES
ËùÓеľßÓк¯Êý¶¨ÒåµÄÑéÖ¤²ßÂԵĽÇÉ«.
488. DBA_ASSOCIATIONS
ÏÔʾÓû§¶¨ÒåµÄͳ¼ÆÐÅÏ¢.
489. DBA_AUDIT_EXISTS
ÁгöAUDIT NOT EXISTSºÍAUDIT EXISTS²úÉúµÄÉ󼯏ú×Ù.
490. ......
sqlserverºÍoracle³£Óú¯Êý¶Ô±È
Êýѧº¯Êý
¡¡¡¡1.¾ø¶ÔÖµ
¡¡¡¡S:select abs(-1) value
¡¡¡¡O:select abs(-1) value from dual
¡¡¡¡2.È¡Õû(´ó)
¡¡¡¡S:select ceiling(-1.001) value
¡¡¡¡O:select ceil(-1.001) value from dual
¡¡¡¡3.È¡Õû£¨Ð¡£©
¡¡¡¡S:select floor(-1.001) value
¡¡¡¡O:select floor(-1.0 ......
Æô¶¯“OracleDBConsole”ʱ£££³öÏÖ“Agent process exited abnormally during initialization.”
ÔÚÔËÐÐ"emctl start dbconsole "¡¡·¢ÏÖÊÇÕÒ²»µ½Ö¸¶¨Îļþ,ÔÚÍøÉÏÕÒÁËÒ»ÏÂÔÒò, ¸ü¸ÄµÄÖ¸¶¨Îļþ¼ÐµÄÃû³Æ£¬µ«»¹ÊDz»ÄÜÆô¶¯·þÎñ£¬½á¹ûÈÏÕæ¿´ÁËһϣ¬ÊÇCTRL+C,CTRL+V È»ºó²ÅÆô¶¯³É¹¦£¬ËùÒÔÌØ¶¨Ð´ÏÂÀ´£¬¼Ç ......