Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Oracle For Update ÐÐËø


ת£ºhttp://hi.baidu.com/mcj0127/blog/item/111a900777db06c87b89473c.html
SELECT FOR UPDATE Ïà¹ØµÄ֪ʶ
Ò»¸öÓʼþ·¢Ë͵ÄÓ¦Óûáÿ¹ýÒ»¶¨µÄʱ¼äƬȥÊý¾Ý¿âÖÐȡδ·¢µÄÓʼþÈ»ºó·¢ËÍÓʼþ£¬³É¹¦ºó½«Êý¾Ý¿âÖÐÓʼþ±êʶδ·¢¸ÄΪÒÑ·¢¡£
Õâ¸öÓ¦Óò¿ÊðÔÚwebsphereÉÏ£¬websphere²ÉÓÃÊÇ´¹Ö±¿Ë¡£¬ÓÐ4¸öserver,µ±4¸öserver¶¼¿ªÆôµÄʱºò£¬¾Í³öÏÖͬʱ·¢4·âÏàͬµÄÓʼþ¸øÍ¬Ò»¸öÓû§¡£
Õâʱ£¬for updateËø¾Í¿ÉÒÔ½â¾öÕâ¸öÎÊÌâ!
1:״̬½âÊÍ
statement: Ò»¸öSQLÓï¾ä¡£
session:   Ò»¸öÓÉORACLEÓû§²úÉúµÄÁ¬½Ó£¬Ò»¸öÓû§¿ÉÒÔ²úÉú¶à¸öSESSION £¬µ«Ï໥֮¼äÊǶÀÁ¢µÄ¡£
transaction:ËùÓеĸı䶼¿ÉÒÔ»®·Öµ½transactionÀһ¸ötransaction°üº¬Ò»¸ö»ò¶à¸öSQL¡£µ±Ò»¸öSESSION½¨Á¢µÄʱºò¾ÍÊÇÒ»¸öTRANSACTION¿ªÊ¼µÄʱ¿Ì£¬´Ëºó   transactionµÄ¿ªÊ¼ºÍ½áÊøÓÉDCL¿ØÖÆ£¬Ò²¾ÍÊÇÿ¸öCOMMIT/ROLLBACK¶¼±êʾ×ÅÒ»¸ötransactionµÄ½áÊø¡£
consistency£ºÊǶÔÓÚstatement¼¶±ð¶ø²»ÊÇtransaction¼¶±ðÀ´ËµµÄ¡£sql statement µÃµ½µÄÊý¾Ý¶¼ÊÇÒÔsql statement¿ªÊ¼µÄIMAGE¡£
2:sql½âÊÍ
LOCKµÄ»ù±¾Çé¿ö: update, insert ,delete, select ... for update»áLOCKÏàÓ¦µÄROW ¡£
Ö»ÓÐÒ»¸öTRANSACTION¿ÉÒÔLOCKÏàÓ¦µÄÐУ¬Ò²¾ÍÊÇ˵Èç¹ûÒ»¸öROWÒѾ­LOCKEDÁË£¬ÄǾͲ»Äܱ»ÆäËûTRANSACTIONËùLOCKÁË¡£
LOCKÓÉstatement²úÉúµ«È´ÓÉTRANSACTION(commit£¬rollback)½á⣬Ҳ¾ÍÊÇ˵һ¸öSQLÍê³ÉºóLOCK»¹»á´æÔÚ£¬Ö»ÓÐÔÚCOMMIT/ROLLBACKºóLOCK²Å»áRELEASE¡£
SELECT.... FOR UPDATE [OF cols] [NOWAIT];
OF cols: SELECT cols from tables [WHERE...] FOR UPDATE [OF cols] [NOWAIT];
3£ºsql˵Ã÷
a:¹ØÓÚOF
transaction AÔËÐÐ
select a.object_name,a.object_id from wwm2 a,wwm3 b where b.status='VALID' and a.object_id=b.object_id for update of a.status
Ôòtransaction B¿ÉÒÔ¶Ôb±íwwm3µÄÏàÓ¦ÐнøÐÐDML²Ù×÷,µ«²»ÄܶÔa±íwwm2ÏàÓ¦ÐнøÐÐDML²Ù×÷.
·´Ò»Ï¿´¿´
transaction AÔËÐÐ
select a.object_name,a.object_id from wwm2 a,wwm3 b where b.status='VALID' and a.object_id=b.object_id for update of b.status
Ôòtransaction B¿ÉÒÔ¶Ôa±íwwm2µÄÏàÓ¦ÐнøÐÐDML²Ù×÷,µ«²»ÄܶÔb±íwwm3ÏàÓ¦ÐнøÐÐDML²Ù×÷.
Ò²¾ÍÊÇ˵LOCKµÄÊÇÐÐ,Ö»ÊÇÈç¹û²»¼ÓOFµÄ»°»á¶ÔËùÓÐÉæ¼°µÄ±íLOCKµÄ,¼ÓÁËOFºóÖ»»áLOCK OF ×Ö¾äËùÔÚµÄTABLE.
b:¹ØÓÚNOWAIT(Èç¹ûÒ»¶¨ÒªÓÃFOR UPDATE£¬ÎÒ¸ü½¨Òé¼ÓÉÏNOWAIT)
µ±


Ïà¹ØÎĵµ£º

Oracle¶àÐмǼºÏ²¢/Á¬½Ó/¾ÛºÏ×Ö·û´®µÄ¼¸ÖÖ·½·¨

ʲôÊǺϲ¢¶àÐÐ×Ö·û´®£¨Á¬½Ó×Ö·û´®£©ÄØ£¬ÀýÈ磺
SQL> desc test;
Name     Type          Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y       &nb ......

Oracle¶àÐмǼºÏ²¢/Á¬½Ó/¾ÛºÏ×Ö·û´®µÄ¼¸ÖÖ·½·¨

ʲôÊǺϲ¢¶àÐÐ×Ö·û´®£¨Á¬½Ó×Ö·û´®£©ÄØ£¬ÀýÈ磺
SQL> desc test;
Name     Type          Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y       &nb ......

Oracle¶àÐмǼºÏ²¢/Á¬½Ó/¾ÛºÏ×Ö·û´®µÄ¼¸ÖÖ·½·¨

ʲôÊǺϲ¢¶àÐÐ×Ö·û´®£¨Á¬½Ó×Ö·û´®£©ÄØ£¬ÀýÈ磺
SQL> desc test;
Name     Type          Nullable Default Comments
------- ------------ -------- ------- --------
COUNTRY VARCHAR2(20) Y       &nb ......

OracleÊý¾ÝÎļþµÄÌØÐÔ

ÎÒÃÇ´ó¼Ò¶¼ÖªµÀÿ¸öOracleÊý¾Ý¿â¶¼»áÓÐÒ»¸ö»òÊǶà¸öÎïÀíµÄOracleÊý¾ÝÎļþ,Êý¾Ý¿âÐÅÏ¢(½á¹¹,Êý¾Ý)µÄÖ÷Òª×÷ÓÃÊÇÀ´±£´æÔÚÕâЩÏà¹ØµÄÊý¾ÝÎļþ,¶øÇÒÖ»ÓÐÕâЩÏà¹ØµÄÎļþOracle²ÅÄܹ»½âÊÍÓë¹ÜÀíÕâЩ´æ´¢.OracleÊý¾ÝÎļþ¾ßÓÐÒÔÏÂÒ»Ð©ÌØÐÔ:
1.Ò»¸öÊý¾ÝÎļþ½ö½ö¹ØÁªÒ»¸öÊý¾Ý¿â,OracleÊý¾ÝÎļþÓëÊý¾Ý¿âÖ®¼ä¶ÔÓ¦¹ØÏµÊÇÒ»¶ÔÒ»¹ØÏµ,µ±È»· ......

out ÁË oracle 8i

½üÀ´½ÓÁ˸ö¼òµ¥µÄϵͳ×ö£¬Íâ°üµÄ£¬ÓõÄÊý¾Ý¿âÊÇoracle8i,
Ò»¿ªÊ¼ÎÒʹÓà ojdbc6.jarÀ´×öÁ¬½Ó£¬Á¬²»ÉÏ£¬ÕÒÒ»·¬£¬Ô­À´¹Ù·½oracle8i³öµÄÇý¶¯Ö»ÓÐ class12.jar ºÍclass14.jar ,×îÒªÃüµÄÊDz»Ö§³Öjdk1.4¼°1.4ÒÔÉϵ쬹¤×÷Á¿ÂíÉϾÍÉÏÀ´ÁË¡£²»¸ÊÐİ¡¡£
×îºóÊÔÁËÏ£¬ÄÜÓõÄÖ»ÓÐojadb14.jar £¬Á¬ÉÏÁË£¬²»¹ýͨ¹ýhibernateÉú³ÉµÄsqlÊµÔ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ