oracle µÄfor updateÐÐËøÓï·¨
SELECT...FOR UPDATE Óï¾äµÄÓï·¨ÈçÏ£º
¡¡¡¡SELECT ... FOR UPDATE [OF column_list][WAIT n|NOWAIT][SKIP LOCKED];
ÆäÖУº
¡¡¡¡OF ×Ó¾äÓÃÓÚÖ¸¶¨¼´½«¸üеÄÁУ¬¼´Ëø¶¨ÐÐÉϵÄÌØ¶¨ÁС£
¡¡¡¡WAIT ×Ó¾äÖ¸¶¨µÈ´ýÆäËûÓû§ÊÍ·ÅËøµÄÃëÊý£¬·ÀÖ¹ÎÞÏÞÆÚµÄµÈ´ý¡£
¡¡¡¡“ʹÓÃFOR UPDATE WAIT”×Ó¾äµÄÓŵãÈçÏ£º
¡¡¡¡£±·ÀÖ¹ÎÞÏÞÆÚµØµÈ´ý±»Ëø¶¨µÄÐУ»
¡¡¡¡£²ÔÊÐíÓ¦ÓóÌÐòÖжÔËøµÄµÈ´ýʱ¼ä½øÐиü¶àµÄ¿ØÖÆ¡£
¡¡¡¡£³¶ÔÓÚ½»»¥Ê½Ó¦ÓóÌÐò·Ç³£ÓÐÓã¬ÒòΪÕâЩÓû§²»Äܵȴý²»È·¶¨
¡¡¡¡£´ ÈôʹÓÃÁËskip locked£¬Ôò¿ÉÒÔÔ½¹ýËø¶¨µÄÐУ¬²»»á±¨¸æÓÉwait n Òý·¢µÄ‘×ÊԴæ’Òì³£±¨¸æ
ʾÀý:
create table t(a varchar2(20),b varchar2(20));
insert into t values('1','1');
insert into t values('2','2');
insert into t values('3','3');
insert into t values('4','4');
ÏÖÔÚÖ´ÐÐÈçϲÙ×÷£º
ÔÚplsql developeÖдò¿ªÁ½¸ösql´°¿Ú£¬
ÔÚ1´°¿ÚÖÐÔËÐÐsql
select * from t where a='1' for update;
ÔÚ2´°¿ÚÖÐÔËÐÐsql1
1. select * from t where a='1'; ÕâÒ»µãÎÊÌâҲûÓУ¬ÒòΪÐм¶Ëø²»»áÓ°Ïì´¿´âµÄselectÓï¾ä
ÔÙÔËÐÐsql2
2. select * from t where a='1' for update; ÔòÕâÒ»¾äsqlÔÚÖ´ÐÐʱ£¬ÓÀÔ¶´¦Óڵȴý״̬£¬³ý·Ç´°¿Ú1ÖÐsql±»Ìá½»»ò»Ø¹ö¡£
ÈçºÎ²ÅÄÜÈÃsql2²»µÈ´ý»òµÈ´ýÖ¸¶¨µÄʱ¼äÄØ£¿ ÎÒÃÇÔÙÔËÐÐsql3
3. select * from t where a='1' for update nowait; ÔòÔÚÖ´ÐдËsqlʱ£¬Ö±½Ó±¨×ÊԴæµÄÒì³£¡£
ÈôÖ´ÐÐ select * from t where a='1' for update wait 6; ÔòÔڵȴý6Ãëºó£¬±¨ ×ÊԴæµÄÒì³£¡£
Èç¹ûÎÒÃÇÖ´ÐÐsql4
4. select * from t where a='1' for update nowait skip Locked; ÔòÖ´ÐÐsqlʱ£¬¼´²»µÈ´ý£¬Ò²²»±¨×ÊԴæÒì³£¡£
ÏÖÔÚÎÒÃÇ¿´¿´Ö´ÐÐÈçϲÙ×÷½«»á·¢ÉúÊ²Ã´ÄØ£¿
ÔÚ´°¿Ú1ÖÐÖ´ÐУº
select * from t where rownum<=3 nowait skip Locked;
ÔÚ´°¿Ú2ÖÐÖ´ÐУº
select * from t where rownum<=6 nowait skip Locked;
select for update Ò²¾ÍÈç´ËÁ˰ɣ¬insert¡¢update¡¢delete²Ù×÷ĬÈϼÓÐм¶Ëø£¬ÆäÔÀíºÍ²Ù×÷Óëselect for update²¢ÎÞÁ½Ñù¡£
select for update of£¬Õâ¸öof×Ó¾äÔÚÇ£Á¬µ½¶à¸ö±íʱ£¬¾ßÓнϴó×
Ïà¹ØÎĵµ£º
LogminerÊÇoracle´Ó8i¿ªÊ¼ÌṩµÄÓÃÓÚ·ÖÎöÖØ×öÈÕÖ¾ÐÅÏ¢µÄ¹¤¾ß£¬Ëü°üÀ¨DBMS_LOGMNRºÍDBMS_LOGMNR_DÁ½¸öpackage£¬ºó±ßµÄDÊÇ×ÖµäµÄÒâ˼¡£Ëü¼ÈÄÜ·ÖÎöredo log file£¬Ò²ÄÜ·ÖÎö¹éµµºóµÄarchive log file¡£ÔÚ·ÖÎöÈÕÖ¾µÄ¹ý³ÌÖÐÐèҪʹÓÃÊý¾Ý×ֵ䣬һ°ãÏÈÉú³ÉÊý¾Ý×ÖµäÎļþºóʹÓã¬10gÒÔºóµÄ°æ±¾»¹¿ÉÒÔʹÓÃÔÚÏßÊý¾Ý×ֵ䡣
Logminer¿ÉÒÔ ......
µ±³õʼ»¯²ÎÊýREMOTE_LOGIN_PASSWORDFILEÉèÖÃΪEXCLUSIVEʱ£¬ÏµÍ³ÔÊÐí³ýINTERNAL/SYSÒÔÍâµÄÆäËûÓû§ÒÔ¹ÜÀíÔ±Éí·Ý´ÓÔ¶¶Ë»ò±¾»úµÇ¼µ½OracleÊý¾Ý¿âϵͳ£¬Ö´ÐÐÊý¾Ý¿â¹ÜÀí¹¤×÷;ÕâЩÓû§Ãû±ØÐë´æÔÚÓÚÃÜÂëÎļþÖУ¬ÏµÍ³²ÅÄÜʶ±ðËûÃÇ¡£ÓÉÓÚ²»¹ÜÊÇÔÚ´´½¨Êý¾Ý¿âʵÀýʱ×Ô¶¯´´½¨µÄÃÜÂëÎļþ£¬»¹ÊÇʹÓù¤¾ßORAPWD.EXEÊÖ¹¤´´½¨µÄÃÜÂëÎļþ£¬¶ ......
1¡¢±à³ÌÓïÑÔÓëOracleÊý¾Ý¿â
1.1¡¢´æ´¢µÄÓëÄäÃûµÄPL/SQL³ÌÐò¿é
Óë´æ´¢µÄPL/SQL³ÌÐò¿éÏà±È£¬ÄäÃûµÄPL/SQL³ÌÐò¿éЧÂʽϵͣ¬´ËÍâÓÉÓÚ¿ÉÄÜÔÚ¶ą̀»úÆ÷Öй«²¼Ô´´úÂ룬»¹»áÒý·¢¹ÜÀíÎÊÌâ¡£
1.2¡¢PL/SQL¶ÔÏó
PL/SQL¶ÔÏó¾ßÓÐÏÂÁÐ5ÖÖÀàÐÍ£º
¹ý³Ì
º¯Êý
³ÌÐò°ü
³ÌÐò°üÖ÷Ìå
´¥·¢Æ÷
2¡¢¹ý³Ì¡¢º¯ÊýÒÔ¼°³ÌÐò°ü
2.1¡¢¹ý³ÌÓëº¯Ê ......
ÓÃjpa²»Äܽ¨±í£¬sqlÓï¾äÊǶԵ쬲»¹ý¾ÍÊDz»Äܽ¨£¬Í¬ÑùµÄsql£¬ÔÚÏÂÃæµÄjdbcÖоͿÉÒÔ£¬¿ÉÄÜÊÇ¿ò¼ÜµÄÏÞÖÆ£¬Ï£Íû¸ßÈËÖ¸µã
import java.net.URL;
import java.sql.*;
public class Create {
public Create() {
}
public static void main(String[] args){
String url = "jdbc:oracle:thin:@10.0.1.3:1521:SDCDB" ......