Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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 9iÖÐÐ޸ıíµÄ½á¹¹µÄÏà¹ØsqlÓï¾ä

ÓÃsql*plus»òµÚÈý·½¿ÉÒÔÔËÐÐsqlÓï¾äµÄ³ÌÐòµÇ¼Êý¾Ý¿â£º
Ôö¼ÓÒ»¸öÁУº
ALTER TABLE ±íÃû ADD(ÁÐÃû Êý¾ÝÀàÐÍ);
È磺
ALTER TABLE emp ADD(weight NUMBER(38,0));
ÐÞ¸ÄÒ»¸öÁеÄÊý¾ÝÀàÐÍ(Ò»°ãÏÞÓÚÐ޸ij¤¶È£¬ÐÞ¸ÄΪһ¸ö²»Í¬ÀàÐÍʱÓÐÖî¶àÏÞÖÆ):
ALTER TABLE ±íÃû MODIFY(ÁÐÃû Êý¾ÝÀàÐÍ);
È磺
ALTER TABLE emp MODIFY(wei ......

oracle ³£ÓÃÐÔÄܲéѯSQL·ÖÏí

select count(1) from dictionary;
select * from dba_data_files;
select count(1) from dba_objects t where t.owner='BESTTONE';
select * from dba_tablespaces t where t.tablespace_name='BESTTONE';
select count(1) from dba_tables t where t.owner='BESTTONE';
select t.table_name,t.comments from diction ......

oracleÖÐsubstrºÍinstrµÄÓ÷¨

ÍøÉÏËѼ¯µÄ£¬ÕûÀíÏÂ
1¡¢substr(string string, int a, int b)
²ÎÊý1:string Òª´¦ÀíµÄ×Ö·û´®
²ÎÊý2£ºa ½ØÈ¡×Ö·û´®µÄ¿ªÊ¼Î»Öã¨ÆðʼλÖÃÊÇ0£©
²ÎÊý3£ºb ½ØÈ¡µÄ×Ö·û´®µÄ³¤¶È(¶ø²»ÊÇ×Ö·û´®µÄ½áÊøλÖÃ)
ÀýÈ磺
substr("ABCDEFG", 0); //·µ»Ø£ºABCDEFG£¬½ØÈ¡ËùÓÐ×Ö·û
substr("ABCDEFG", 2); //·µ»Ø£ºCDEFG£¬½ØÈ¡´ÓC¿ ......

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

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