ORACLEËøµÄ¹ÜÀí
ORACLEÀïËøÓÐÒÔϼ¸ÖÖģʽ:
0£ºnone
1£ºnull ¿Õ
2£ºRow-S Ðй²Ïí(RS)£º¹²Ïí±íËø£¬sub share
3£ºRow-X ÐжÀÕ¼(RX)£ºÓÃÓÚÐеÄÐ޸ģ¬sub exclusive
4£ºShare ¹²ÏíËø(S)£º×èÖ¹ÆäËûDML²Ù×÷£¬share
5£ºS/Row-X ¹²ÏíÐжÀÕ¼(SRX)£º×èÖ¹ÆäËûÊÂÎñ²Ù×÷£¬share/sub exclusive
6£ºexclusive ¶ÀÕ¼(X)£º¶ÀÁ¢·ÃÎÊʹÓã¬exclusive
Êý×ÖÔ½´óËø¼¶±ðÔ½¸ß, Ó°ÏìµÄ²Ù×÷Ô½¶à¡£
1¼¶ËøÓУºSelect£¬ÓÐʱ»áÔÚv$locked_object³öÏÖ¡£
2¼¶ËøÓУºSelect for update,Lock For Update,Lock Row Share
select for updateµ±¶Ô»°Ê¹ÓÃfor update×Ó´®´ò¿ªÒ»¸öÓαêʱ£¬ËùÓзµ»Ø¼¯ÖеÄÊý¾ÝÐж¼½«´¦ÓÚÐм¶(Row-X)¶ÀÕ¼Ê½Ëø¶¨£¬ÆäËû¶ÔÏóÖ»ÄܲéѯÕâЩÊý¾ÝÐУ¬²»ÄܽøÐÐupdate¡¢delete»òselect for update²Ù×÷¡£
3¼¶ËøÓУºInsert, Update, Delete, Lock Row Exclusive
ûÓÐcommit֮ǰ²åÈëͬÑùµÄÒ»Ìõ¼Ç¼»áûÓз´Ó¦, ÒòΪºóÒ»¸ö3µÄËø»áÒ»Ö±µÈ´ýÉÏÒ»¸ö3µÄËø, ÎÒÃDZØÐëÊͷŵôÉÏÒ»¸ö²ÅÄܼÌÐø¹¤×÷¡£
4¼¶ËøÓУºCreate Index, Lock Share
locked_modeΪ2,3,4²»Ó°ÏìDML(insert,delete,update,select)²Ù×÷, µ«DDL(alter,dropµÈ)²Ù×÷»áÌáʾora-00054´íÎó¡£
00054, 00000, "resource busy and acquire with NOWAIT specified"
// *Cause: Resource interested is busy.
// *Action: Retry if necessary.
5¼¶ËøÓУºLock Share Row Exclusive
¾ßÌåÀ´½²ÓÐÖ÷Íâ¼üÔ¼ÊøÊ±update / delete ... ; ¿ÉÄÜ»á²úÉú4,5µÄËø¡£
6¼¶ËøÓУºAlter table, Drop table, Drop Index, Truncate table, Lock Exclusive
ÒÔDBA½ÇÉ«, ²é¿´µ±Ç°Êý¾Ý¿âÀïËøµÄÇé¿ö¿ÉÒÔÓÃÈçÏÂSQLÓï¾ä£º
col owner for a12
col object_name for a16
select b.owner,b.object_name,l.session_id,l.locked_mode
from v$locked_object l, dba_objects b
where b.object_id=l.object_id
/
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time
/
Èç¹ûÓг¤ÆÚ³öÏÖµÄÒ»ÁУ¬¿ÉÄÜÊÇûÓÐÊͷŵÄËø¡£ÎÒÃÇ¿ÉÒÔÓÃÏÂÃæSQLÓï¾äɱµô³¤ÆÚûÓÐÊÍ·Å·ÇÕý³£µÄËø£º
alter system kill session 'sid,serial#';
Èç¹û³öÏÖÁËËøµÄÎÊÌâ, ij¸öDML²Ù×÷¿ÉÄܵȴýºÜ¾ÃûÓз´Ó¦¡£
µ±Äã²ÉÓõÄÊÇÖ±½ÓÁ¬½ÓÊý¾Ý¿âµÄ·½Ê½£¬Ò²²»ÒªÓÃOSϵͳÃüÁî $kill process_num »òÕß $kill -9 process_numÀ´ÖÕÖ¹Óû§Á¬½Ó£¬ÒòΪһ¸öÓû§½ø³Ì¿ÉÄܲúÉúÒ»¸öÒÔÉϵÄËø, ɱOS½ø³Ì²¢²»Äܳ¹µ×Çå
Ïà¹ØÎĵµ£º
Êýѧº¯Êý
ÔÚoracle ÖÐdistinct¹Ø¼ü×Ö¿ÉÒÔÏÔʾÏàͬ¼Ç¼ֻÏÔʾһÌõ
¡¡¡¡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
......
NULLÖ¸µÄÊÇ¿ÕÖµ£¬»òÕß·Ç·¨Öµ¡£
NVL (expr1, expr2)->expr1ΪNULL£¬·µ»Øexpr2£»²»ÎªNULL£¬·µ»Øexpr1¡£×¢ÒâÁ½ÕßµÄÀàÐÍÒªÒ»ÖÂ
NVL2 (expr1, expr2, expr3) ->expr1²»ÎªNULL£¬·µ»Øexpr2£»ÎªNULL£¬·µ»Øexpr3¡£expr2ºÍexpr3ÀàÐͲ»Í¬µÄ»°£¬expr3»áת»»Îªexpr2µÄÀàÐÍ
NULLIF (expr1, expr2) ->ÏàµÈ·µ»ØNULL£¬²»µÈ·µ»Øex ......
Oracle ´¥·¢Æ÷ÓÐÓï¾ä¼¶´¥·¢Æ÷ºÍÐм¶´¥·¢Æ÷
Óï¾ä¼¶´¥·¢Æ÷ µ±É¾³ý²¿ÃűíÖеIJ¿ÃźÅʱ£¬Í¬Ê±É¾³ýµôÔ±¹¤±íÖв¿ÃźÅΪ£ºold.deptnoµÄ¼Ç¼
create or replace trigger del_dept_id
after delete on dept
for each row
begin
delete from emp where deptno=:old.deptno;
end;
µ±Íù²¿Ãűí²åÈëʱ£¬Í¬Ê±ÔÚÔ±¹¤±íÖ ......
Èç¹ûweb·½Ê½µÄem£¬isqlplus·ÃÎʲ»ÁË¡£
1. ¼ì²éÖ÷»úÃû/IP¡¢¶Ë¿ÚÊÇ·ñÕýÈ·
°²×°Ê±µÄÖ÷»úÃû/IP¡¢¶Ë¿Ú¼Ç¼ÔÚ$ORACLE_HOME/install/portlist.ini ÎļþÖС£
ȱʡÊÇ£º
Ò»°ãÓû§ http://ip:5560/isqlplus
DBAÓû§ &nb ......