oracleÖеÄsavepointsÊÇʲô
ʲôÊÇsavepoint?
Use the SAVEPOINT statement to identify a point in a transaction to which you can later roll back.
¸øÄã¸öÀý×Ó
SQL> create table test (id number(7));
±íÒÑ´´½¨¡£
SQL> insert into test values (3);
ÒÑ´´½¨ 1 ÐС£
SQL> savepoint a;
±£´æµãÒÑ´´½¨¡£
SQL> insert into test values (4);
ÒÑ´´½¨ 1 ÐС£
SQL> select * from test;
ID
----------
3
4
SQL> rollback to a;
»ØÍËÒÑÍê³É¡£
SQL> select * from test;
ID
----------
3
SQL> rollback;
»ØÍËÒÑÍê³É¡£
SQL> select * from test;
δѡ¶¨ÐÐ
ÊÂÎñÖеÄSavepoints
Äã¿ÉÒÔÔÚÊÂÎñÉÏÏÂÎÄÖÐÉùÃ÷³ÆÎªsavepointµÄÖмä±ê¼Ç¡£Savepoint½«Ò»¸ö³¤ÊÂÎñ·Ö¸ôΪ½ÏСµÄ²¿·Ö¡£
ʹÓÃsavepoint£¬Äã¿ÉÒÔÔÚ³¤ÊÂÎñÖÐÈκεãÈÎÒâ±ê¼ÇÄãµÄ²Ù×÷¡£È»ºóÄã¿ÉÒÔÑ¡Ôñ»Ø¹öÔÚÊÂÎñÖе±Ç°µã֮ǰ¡¢ÉùÃ÷µÄsavepointÖ®ºóÖ´ÐеIJÙ×÷¡£±ÈÈ磬Äã¿ÉÒÔÔÚÒ»³¤¶Î¸´ÔӵĸüÐÂÖÐʹÓÃsavepoint£¬Èç¹û·¸Á˸ö´í£¬Äã²»ÐèÒªÖØÐÂÌá½»ËùÓÐÓï¾ä¡£
SavepointsÔÚÓ¦ÓóÌÐòÖÐͬÑùÓÐÓá£Èç¹ûÒ»¸ö¹ý³Ì°üº¬¼¸¸öº¯Êý£¬ÄÇ¿ÉÒÔÔÚÿ¸öº¯Êýǰ´´½¨Ò»¸ösavepoint¡£Èç¹ûÒ»¸öº¯Êýʧ°Ü£¬·µ»ØÊý¾Ýµ½º¯Êý¿ªÊ¼Ç°µÄ״̬²¢ÔÚÐ޸IJÎÊý»òÖ´ÐÐÒ»¸ö»Ö¸´²Ù×÷ºóÖØÐÂÔËÐк¯Êý¾Í·Ç³£ÈÝÒס£
Ôڻعöµ½Ò»¸ösavepointºó£¬OracleÊÍ·ÅÓɱ»»Ø¹öµÄÓï¾ä³ÖÓеÄËø¡£ÆäËûµÈ´ý֮ǰ±»Ëø×ÊÔ´µÄÊÂÎñ¿ÉÒÔ½øÐÐÁË¡£ÆäËûÒª¸üÐÂ֮ǰ±»ËøÐеÄÊÂÎñÒ²¿ÉÒÔÖ´ÐС£
µ±Ò»¸öÊÂÎñ»Ø¹öµ½Ò»¸ösavepoint£¬·¢ÉúÏÂÁÐʼþ£º
1. Oracle½ö»Ø¹ösavepointÖ®ºóµÄÓï¾ä¡£
2. Oracle±£ÁôÕâÒ»savepoint£¬µ«ËùÓн¨Á¢Óڴ˺óµÄsavepoints¶ªÊ§¡£
3. OracleÊÍ·ÅÔÚ¸Ãsavepointºó»ñµÃµÄËùÓÐ±í¡¢ÐÐËø£¬µ«±£Áô֮ǰ»ñµÃµÄËùÓÐËø¡£
ÊÂÎñ±£³Ö»î¶¯²¢¿É¼ÌÐø¡£
ÎÞÂÛºÎʱһ¸ö»á»°ÔڵȴýÊÂÎñ£¬µ½savepointµÄ»Ø¹ö²»»áÊÍ·ÅÐÐËø¡£ÎªÁËÈ·±£ÊÂÎñÈç¹ûÎÞ·¨»ñµÃËøÒ²²»»áÐü¹Ò£¨hang£©£¬ÔÚÖ´ÐÐUPDATE»òDELETEǰʹÓÃFOR UPDATE ... NOWAIT¡££¨ÕâÀïÖ¸»Ø¹öµÄsavepoint֮ǰ»ñµÃµÄËø¡£¸Ãsavepointºó»ñµÃµÄÐÐËø»á±»ÊÍ·Å£¬Ö®ºóÖ´ÐеÄÓï¾äÒ²»á±»³¹µ×»Ø¹ö¡££©
Ïà¹ØÎĵµ£º
ÔÚOracle¹ØÓÚʱ¼äÊôÐԵĽ¨±í
Example:
create table courses(
cid varchar(20) not null primary key,
cname varchar(20) not null,
ctype integer,
ctime date DEFAULT SYSDATE,
cscore float not null
)
insert into courses values('ss01','java',0,TO_DATE('2009-8-28','yyyy-mm-dd'),94)
insert into course ......
Oracle ´æ´¢¹ý³Ì·µ»Ø½á¹û¼¯Óà ref cursor ʵÏÖ¡£ÊÔÑé²½ÖèÈçÏ£º
1. ½¨Á¢ ref cursor ÀàÐͺ͹ý³Ì
CREATE OR REPLACE PACKAGE types
AS
TYPE ref_cursor IS REF CURSOR;
END;
/
CREATE TABLE STOCK_PRICES(
RIC VARCHAR(6) PRIMARY KEY,
PRICE NUMBER(7,2 ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
¹«ÍøÖÕÓÚͨµÄ£¬ÎÒµÄubuntu
Ò²ÖÕÓÚ¿ÉÒÔ¼ÌÐøÊ¹ÓÃÁË¡£¡£¡£
Ê×ÏȰѱ¾×ÓµÄubuntu
´Ó9.04
Éý¼¶µ½10.04
£¬·¢ÏÖϵͳ±ä³ÉÓ¢ºº»ìÓÃÁË£¬ÖØÑ¡ÓïÑÔÖ§³Ö°üÒ²²»¿ÉÒÔ£¬ÊäÈë·¨Ò²Ìí¼Ó²»ÉÏ£¬µ¹ÊÇûÓÐÍøÉÏÓÐÈËÌáµ½µÄϵͳÏìÓ¦·Ç³£»ºÂýµÄÎ ......
oracle ´æ´¢¹ý³ÌµÄ»ù±¾Óï·¨ ¼°×¢ÒâÊÂÏî
oracle ´æ´¢¹ý³ÌµÄ»ù±¾Óï·¨
1.»ù±¾½á¹¹
CREATE OR REPLACE PROCEDURE ´æ´¢¹ý³ÌÃû×Ö
(
²ÎÊý1 IN NUMBER,
²ÎÊý2 IN NUMBER
) IS
±äÁ¿1 INTEGER :=0;
±äÁ¿2 DATE;
BEGIN
END ´æ´¢¹ý³ÌÃû×Ö
2.SELECT INTO STATEMENT
½«selec ......
Oracle¶Ô±í×öÈ«±íɨÃèµÄʱºò
£¬»áɨÃèÍêHWMÒÔÏÂ
µÄÊý¾Ý¿é¡£Èç¹ûij¸ö±ídelete(delete²Ù×÷²»»á½µµÍ¸ßˮλ)ÁË´óÁ¿Êý¾Ý£¬ÄÇôÕâʱ¶Ô±í×öÈ«±íɨÃè¾Í»á×öºÜ¶àÎÞÓù¦£¬É¨ÃèÁËÒ»´ó¶ÑÊý¾Ý¿é£¬×îºó·¢ÏÖ¿éÀïÃæ¾ÓȻûÓÐÊý¾Ý¡£
ͨ³££¬ÔÚ¶Ô±í×öÁË´óÅúÁ¿delete²Ù×÷Ö®ºó£¬¾ÍÓ¦¸ÃÂíÉϽµµÍ±íµÄ¸ßˮ룬¿ÉÒÔʹÓÃshrink ÃüÁî»òÕßalter&n ......