Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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 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 pl/sqlʵÀýÁ·Ï°


µÚÒ»²¿·Ö£ºoracle pl/sqlʵÀýÁ·Ï°(1)
Ò»¡¢Ê¹ÓÃscott/tigerÓû§ÏµÄemp±íºÍdept±íÍê³ÉÏÂÁÐÁ·Ï°£¬±íµÄ½á¹¹ËµÃ÷ÈçÏÂ
empÔ±¹¤±í(empnoÔ±¹¤ºÅ/enameÔ±¹¤ÐÕÃû/job¹¤×÷/mgrÉϼ¶±àºÅ/hiredateÊܹÍÈÕÆÚ/salн½ð/commÓ¶½ð/deptno²¿ÃűàºÅ)
dept²¿Ãűí(deptno²¿ÃűàºÅ/dname²¿ÃÅÃû³Æ/locµØµã)
¹¤×Ê £½ н½ð £« Ó¶½ð
Ò²¿ÉÒÔͨ¹ý ......

oracleС¼Í

INSERT INTO hydlsrs@remote_£ú£úh
SELECT * from hydlsrs where zzh='2'
hydlsrsΪ±íÃû¡¡£Àremote_zzhΪ¿âÃû
select * from hydlsrsΪÁí1¿âÖбíÃû£¬
²»Í¬¿âÖÐÏàͬ±í½á¹¹£¬¿ÉÒÔ¿ç¿â²åÈë¡£ÓÃÓÚ
2µØµ¹Èë±íÄÚÈÝ¡£  ......

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

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