ѧϰ¡¶Oracle 9i10g±à³ÌÒÕÊõ¡·µÄ±Ê¼Ç (Ê®) Ëø
1.ÔÚOracle ÖУ¬Äã»áÁ˽⵽£º
ÊÂÎñÊÇÿ¸öÊý¾Ý¿âµÄºËÐÄ£¬ËüÃÇÊÇ“ºÃ¶«Î÷”¡£
Ó¦¸ÃÑÓ³Ùµ½Êʵ±µÄʱ¿Ì²ÅÌá½»¡£²»ÒªÌ«¿ìÌá½»£¬ÒÔ±ÜÃâ¶Ôϵͳ´øÀ´Ñ¹Á¦¡£ÕâÊÇÒòΪ£¬Èç¹û
ÊÂÎñºÜ³¤»òºÜ´ó£¬Ò»°ã²»»á¶ÔϵͳÓÐѹÁ¦¡£ÏàÓ¦µÄÔÔòÊÇ£ºÔÚ±ØҪʱ²ÅÌá½»£¬µ«ÊÇ´ËÇ°²»ÒªÌá
½»¡£ÊÂÎñµÄ´óСֻӦ¸Ã¸ù¾ÝÒµÎñÂß¼À´¶¨¡£
Ö»ÒªÐèÒª£¬¾ÍÓ¦¸Ã¾¡¿ÉÄܳ¤Ê±¼äµØ±£³Ö¶ÔÊý¾ÝËù¼ÓµÄËø¡£ÕâЩËøÊÇÄãÄÜÀûÓõŤ¾ß£¬¶ø²»
ÊÇÈÃÄãÍ˱ÜÈýÉáµÄ¶«Î÷¡£Ëø²»ÊÇÏ¡ÓÐ×ÊÔ´¡£Ç¡Ç¡Ïà·´£¬Ö»ÒªÐèÒª£¬Äã¾ÍÓ¦¸Ã³¤Æڵر£³ÖÊý¾ÝÉÏ
µÄËø¡£Ëø¿ÉÄܲ¢²»Ï¡ÉÙ£¬¶øÇÒËüÃÇ¿ÉÒÔ·ÀÖ¹ÆäËû»á»°ÐÞ¸ÄÐÅÏ¢¡£
ÔÚOracle ÖУ¬Ðм¶ËøûÓÐÏà¹ØµÄ¿ªÏú£¬¸ù±¾Ã»ÓС£²»ÂÛÄãÊÇÓÐ1 ¸öÐÐËø£¬»¹ÊÇ1 000 000
¸öÐÐËø£¬×¨ÓÃÓÚËø¶¨Õâ¸öÐÅÏ¢µÄ“×ÊÔ´”Êý¶¼ÊÇÒ»ÑùµÄ¡£µ±È»£¬ÓëÐÞ¸Ä1 ÐÐÏà±È£¬ÐÞ¸Ä1 000 000
ÐÐÒª×öµÄ¹¤×÷¿Ï¶¨¶àµÃ¶à£¬µ«ÊǶÔ1 000 000 ÐÐËø¶¨ËùÐèµÄ×ÊÔ´ÊýÓë¶Ô1 ÐÐËø¶¨ËùÐèµÄ×ÊÔ´Êý
ÍêÈ«Ïàͬ£¬ÕâÊÇÒ»¸ö¹Ì¶¨µÄ³£Á¿¡£
²»ÒªÒÔΪËøÉý¼¶“¶Ôϵͳ¸üºÃ”£¨ÀýÈ磬ʹÓñíËø¶ø²»ÊÇÐÐËø£©¡£ÔÚOracle ÖУ¬ËøÉý¼¶£¨lock
escalate£©¶ÔϵͳûÓÐÈκκô¦£¬²»»á½ÚÊ¡ÈκÎ×ÊÔ´¡£Ò²ÐíÓÐʱ»áʹÓñíËø£¬ÈçÅú´¦ÀíÖУ¬´Ë
ʱÄãºÜÇå³þ»á¸üÐÂÕû¸ö±í£¬¶øÇÒ²»Ï£ÍûÆäËû»á»°Ëø¶¨±íÖеÄÐС£µ«ÊÇʹÓñíËø¾ø¶Ô²»ÊÇΪÁ˱Ü
Ãâ·ÖÅäÐÐËø£¬ÏëÒÔ´ËÀ´·½±ãϵͳ¡£
¿ÉÒÔͬʱµÃµ½²¢·¢ÐÔºÍÒ»ÖÂÐÔ¡£Ã¿´ÎÄ㶼ÄÜ¿ìËÙ¶ø׼ȷµØµÃµ½Êý¾Ý¡£Êý¾Ý¶ÁÈ¡Æ÷²»»á±»Êý
¾ÝдÈëÆ÷×èÈû¡£Êý¾ÝдÈëÆ÷Ò²²»»á±»Êý¾Ý¶ÁÈ¡Æ÷×èÈû¡£ÕâÊÇOracle Óë´ó¶àÊýÆäËû¹ØϵÊý¾Ý¿âÖ®
¼äµÄ¸ù±¾Çø±ðÖ®Ò»¡£
2.¶ªÊ§¸üÐÂ
¶ªÊ§¸üУ¨lost update£©ÊÇÒ»¸ö¾µäµÄÊý¾Ý¿âÎÊÌ⡣ʵ¼ÊÉÏ£¬ËùÓжàÓû§¼ÆËã»ú»·¾³¶¼´æÔÚÕâ¸öÎÊ
Ìâ¡£¼òµ¥µØ˵£¬³öÏÖÏÂÃæµÄÇé¿öʱ£¨°´ÒÔÏÂËùÁеÄ˳Ðò£©£¬¾Í»á·¢Éú¶ªÊ§¸üУº
(1) »á»°Session1 ÖеÄÒ»¸öÊÂÎñ»ñÈ¡£¨²éѯ£©Ò»ÐÐÊý¾Ý£¬·ÅÈë±¾µØÄڴ棬²¢ÏÔʾ¸øÒ»¸ö×îÖÕÓû§User1¡£
(2) »á»°Session2 ÖеÄÁíÒ»¸öÊÂÎñÒ²»ñÈ¡ÕâÒ»ÐУ¬µ«Êǽ«Êý¾ÝÏÔʾ¸øÁíÒ»¸ö×îÖÕÓû§User2¡£
(3) User1 ʹÓÃÓ¦ÓÃÐÞ¸ÄÁËÕâÒ»ÐУ¬ÈÃÓ¦ÓøüÐÂÊý¾Ý¿â²¢Ìá½»¡£»á»°Session1 µÄÊÂÎñÏÖÔÚÒѾִÐС£
(4) User2 Ò²ÐÞ¸ÄÕâÒ»ÐУ¬ÈÃÓ¦ÓøüÐÂÊý¾Ý¿â²¢Ìá½»¡£»á»°Session2 µÄÊÂÎñÏÖÔÚÒѾִÐС£
Õâ¸ö¹ý³Ì³ÆΪ“¶ªÊ§¸üД£¬ÒòΪµÚ(3)²½Ëù×öµÄËùÓÐÐ޸Ķ¼»á¶ªÊ§¡£ÀýÈ磬Ç뿼ÂÇÒ»¸öÔ±¹¤¸üÐÂÆÁÄ»£¬
ÕâÀïÔÊÐíÓû§Ð޸ĵØÖ·¡¢¹¤×÷µç»°ºÅÂëµÈÐÅÏ¢¡£Ó¦Óñ¾Éí·Ç³£¼òµ¥£ºÖ»ÓÐÒ»¸öºÜСµÄËÑË÷ÆÁĻҪ
Ïà¹ØÎĵµ£º
¸ú×ÅÕ⼸ÌìOracle OpenWorld´ó»áµÄ¾ÙÐУ¬Oracle11gµÄÐÂÌØÕ÷Ô½À´Ô½¶àµÄ±»Õ¹ÏÖ³öÀ´¡£
¡¡¡¡ÒÔÇ°£¬ÎÒÔø¾Òý¼û¹ýOracle11g½«¿ÉÄÜÔÚ10Ô·ݵÄÕâ¸ö´ó»áÉÏÍƳö£¬µ±³õÖÁÓÚAlpha°æµÄÐÅÏ¢ÒѾ¿ÉÒÔ¼ûµ½£¬ÏÖʱ³öÏÖµÄÒѾÊÇBeta°æ£¬ÀëOracle11gµÄÕýʽ°æÒѾ²»Ô¶¡£
¡¡¡¡Laurent Schneider ÔÚËûµÄBlogÖÐ̸µ½£¬¶ÔÓÚOracle11gµÄÃû×Ö»¹ ......
1.Êý¾Ý¿â¶ÀÁ¢ÐÔ
½«Ó¦ÓôÓÊý¾Ý¿âA ÒÆÖ²µ½Êý¾Ý¿âB ʱ£¬ÎÒʱ³£Óöµ½ÕâÖÖÎÊÌ⣺ӦÓÃÔÚÊý¾Ý¿âA ÉÏÔ±¾ÎÞи¿É»÷£¬µ½ÁË
Êý¾Ý¿âB ÉÏÈ´²»Äܹ¤×÷£¬»òÕß±íÏֵúÜÀëÆæ¡£¿´µ½ÕâÖÖÇé¿ö£¬ÎÒÃǵĵÚÒ»¸öÏë·¨ÍùÍùÊÇ£¬Êý¾Ý¿âB ÊÇÒ»¸ö
“²»ºÃµÄ”Êý¾Ý¿â¡£¶øÕæÕýµÄÔÒòÆäʵÊÇÊý¾Ý¿âB µÄ¹¤×÷·½Ê½ÍêÈ«²»Í¬¡£Ã»ÓÐÄĸöÊý¾Ý¿âÊÇ´íµÄ ......
1.¾¡¿ÉÄܵØʹÓð󶨱äÁ¿ ²»Óÿª¹ØCURSOR_SHARING=FORCE
Èç¹ûÄãÔ¸Ò⣬Õâ¸öÌØÐÔ»áʵÏÖÒ»¸ö×Ô¶¯°ó¶¨Æ÷£¨auto-binder£©¡£
Èç¹ûÓÐÒ»¸ö²éѯ±àдΪSELECT * from EMP WHERE EMPNO = 1234£¬×Ô¶¯°ó¶¨Æ÷»áÇÄÎÞÉùÏ¢µØ°ÑËü¸Äд³É
SELECT * from EMP WHERE EMPNO = :x¡£ÕâȷʵÄܶ¯Ì¬µØ´ó´ó¼õÉÙÓ²½âÎöÊý£¬²¢¼õÉÙÇ°ÃæÌÖÂÛµ ......
OracleÖк¯ÊýÒÔÇ°½éÉܵÄ×Ö·û´®´¦Àí£¬ÈÕÆÚº¯Êý£¬Êýѧº¯Êý,ÒÔ¼°×ª»»º¯ÊýµÈµÈ£¬»¹ÓÐÒ»ÀຯÊýÊÇͨÓú¯Êý¡£Ö÷ÒªÓУºNVL,NVL2,NULLIF,COALESCE£¬Õ⼸¸öº¯ÊýÓÃÔÚ¸÷¸öÀàÐÍÉ϶¼¿ÉÒÔ¡£
ÏÂÃæ¼òµ¥½éÉÜһϼ¸¸öº¯ÊýµÄÓ÷¨¡£
ÔÚ½éÉÜÕâ¸ö֮ǰÄã±ØÐëÃ÷°×ʲôÊÇoracleÖеĿÕÖµnull
1.NVLº¯Êý
NVLº¯ÊýµÄ¸ñʽÈçÏ£ºNVL(expr1,expr2)
º¬ÒåÊ ......
Ò»¡¢×¼±¸ÌØÊâÊý¾Ý
create table t_escape(s varchar2(50));
--show define -- define "&" (hex 26)
--show escape -- escape off
set define off
set escape on
insert into t_escape values('string&text');
insert into t_escape values('string\&text');
insert into t_escape values('st ......