¡¾ÊµÏÖ²½Öè¡¿
1. ´´½¨±íblog_info, ¾ßÓÐIDºÍtitleÁ½¸ö×Ö¶Î, ÆäÖÐID½«ÉèÖÃΪ×Ô¶¯Ôö³¤ÁÐ;
2. ´´½¨ÐòÁÐ:
create sequence sq_blog_info
start with 1
increment by 1
nomaxvalue
nocycle
cache 10;
3. ´´½¨´¥·¢Æ÷:
create or replace trigger tg_blog_info
before insert on blog_info for each row
begin
select sq_blog_info.nextval into :NEW.id from dual; --¡ï×¢Òâ: ´Ë´¦µÄ;ÊDZØÐëµÄ
end;
4. ²âÊÔ:
insert into blog_info (title) values('a');
......
¹ý³ÌÖеÄÊÂÎñ
¶¨Òå¹ý³Ìp1
create or replace procedure p1
as
begin
insert into student values(5,'xdh','m',sysdate);
rollback;
end;
¶¨Òå¹ý³Ìp2
create or replace procedure p2
as
begin
update student set stu_sex = 'a' where stu_id = 3;
p1;
end;
Ö´Ðйý³Ìp2
exec p2;
Ö´ÐÐÍê±Ï·¢ÏÖ±íÖÐÊý¾ÝûÓбä¸ü£¬ËµÃ÷p1ÖеÄrollbackÓï¾ä½«p2ÖеÄupdateÓï¾äÒ²»Ø¹öÁË¡£
×ÔÖ÷ÊÂÎñ´¦Àí
²½Ö裺
Ö÷ÊÂÎñ´¦ÀíÆô¶¯×ÔÖ÷ÊÂÎñ´¦Àí
Ö÷ÊÂÎñ´¦Àí±»ÔÝÍ£
×ÔÖ÷ÊÂÎñ´¦Àísql²Ù×÷
ÖÐÖ¹×ÔÖ÷ÊÂÎñ´¦Àí
»Ö¸´Ö÷ÊÂÎñ´¦Àí
pragma autonomous_transaction
ÓÃÓÚ±ê¼Ç×Ó³ÌÐò
ÔÚp1µÄas beginµ±ÖмÓÈë pragma autonomous_transaction ºóÖ´ÐУ¬·¢ÐÐp2µÄupdateÓï¾äÉúЧ£¬p1ÖеÄÊÂÎñ×÷Ϊ×ÔÖ÷ÊÂÎñÀ´´¦Àí£¬²»Ó°ÏìÖ÷ÊÂÎñ¡£
³ÌÐò°ü
Ïà¹Ø¶ÔÏóµÄ·â×°
-³ÌÐò°ü¹æ¸ñ˵Ã÷
ÉùÃ÷×Ó³ÌÐò£¬²»°üº¬ÊµÏÖ
create package °üÃû is|as ±äÁ¿ÉùÃ÷|ÀàÐͶ¨Òå|Òì³£ÉùÃ÷|ÓαêÉùÃ÷|º¯Êý˵Ã÷|¹ý³Ì˵Ã÷
pragma restrict_references(º¯ÊýÃû,WNDS[,WNPS][,RNDS][,RNPS])
end [°üÃû];
create or replace package S ......
¡¡¡¡1£© ÓÃSELECTÓï¾ä´Ó±íÖÐÌáÈ¡²éѯÊý¾Ý¡£Ó﷨Ϊ
¡¡¡¡SELECT [DISTINCT] {column1,column2,…} from tablename WHERE {conditions} GROUP BY {conditions} ORDER BY {expressions} [ASC/DESC];
¡¡¡¡ËµÃ÷£ºSELECT×Ó¾äÓÃÓÚÖ¸¶¨¼ìË÷Êý¾Ý¿âµÄÖÐÄÄЩÁУ¬from×Ó¾äÓÃÓÚÖ¸¶¨´ÓÄÄÒ»¸ö±í»òÊÓͼÖмìË÷Êý¾Ý¡£
¡¡¡¡2£© SELECTÖеIJÙ×÷·û¼°¶à±í²éѯWHERE×Ӿ䡣(LIKE,IS,…)
¡¡¡¡¡¡WHERE×Ó¾äÖеÄÌõ¼þ¿ÉÒÔÊÇÒ»¸ö°üº¬µÈºÅ»ò²»µÈºÅµÄÌõ¼þ±í´ïʽ£¬Ò²¿ÉÒÔÊÇÒ»¸öº¬ÓÐIN¡¢NOT IN¡¢BETWEEN¡¢LIKE¡¢IS NOT NULLµÈ±È½ÏÔËËã·ûµÄÌõ¼þʽ£¬»¹¿ÉÒÔÊÇÓɵ¥Ò»µÄÌõ¼þ±í´ïͨ¹ýÂß¼ÔËËã·û×éºÏ³É¸´ºÏÌõ¼þ¡£
¡¡¡¡3£© ORDER BY¡¡ ×Ó¾ä
¡¡¡¡ORDER BY ×Ó¾äʹµÃSQLÔÚÏÔʾ²éѯ½á¹ûʱ½«¸÷·µ»ØÐа´Ë³ÐòÅÅÁУ¬·µ»ØÐеÄÅÅÁÐ˳ÐòÓÉORDER BY ×Ó¾äÖ¸¶¨µÄ±í´ïʽµÄֵȷ¶¨¡£
¡¡¡¡4£© Á¬½Ó²éѯ
¡¡¡¡ÀûÓÃSELECTÓï¾ä½øÐÐÊý¾Ý¿â²éѯʱ£¬¿ÉÒ԰Ѷà¸ö±í¡¢ÊÓͼµÄÊý¾Ý½áºÏÆðÀ´£¬Ê¹µÃ²éѯ½á¹ûµÄÿһÐÐÖаüº¬À´×Ô¶à¸ö±í´ïʽ»òÊÓͼµÄÊý¾Ý£¬ÕâÖÖ²Ù×÷±»³ÆÎªÁ¬½Ó²éѯ¡£
¡¡¡¡Á¬½Ó²éѯµÄ·½·¨ÊÇÔÚSELECTÃüÁîµÄfrom×Ó¾äÖÐÖ¸¶¨Á½¸ö»ò¶à¸ö½«±»Á¬½Ó²éѯµÄ±í»òÊÓͼ£¬²¢ÇÒÔÚWHERE×Ӿ䏿ËßORACLEÈçºÎ°Ñ¶à¸ö±íµÄÊý¾Ý½øÐкϲ¢¡£¸ù ......
Oracle RAC
¡¡¡¡RAC£¬È«³Æreal application clusters£¬ÒëΪ“ÕæÕýÓ¦Óü¯Èº”£¬ ÊÇOracleаæÊý¾Ý¿âÖвÉÓõÄÒ»Ïîм¼Êõ£¬Ò²ÊÇOracleÊý¾Ý¿âÖ§³ÖÍø¸ñ¼ÆËã»·¾³µÄºËÐļ¼Êõ¡£
¡¡¡¡Oracle RACÖ÷ÒªÖ§³ÖOracle9i¡¢10g¡¢11g°æ±¾£¬¿ÉÒÔ¿ÉÒÔÖ§³Ö24 x 7 ÓÐЧµÄÊý¾Ý¿âÓ¦Óà ϵͳ£¬Ôڵͳɱ¾·þÎñÆ÷ÉϹ¹½¨¸ß¿ÉÓÃÐÔÊý¾Ý¿âϵͳ£¬²¢ÇÒ×ÔÓɲ¿ÊðÓ¦Óã¬ÎÞÐèÐ޸ĴúÂë¡£
¡¡¡¡ÔÚOracle RAC»·¾³Ï£¬Oracle¼¯³ÉÌṩÁ˼¯ÈºÈí¼þºÍ´æ´¢¹ÜÀíÈí¼þ£¬ÎªÓû§½µµÍÁËÓ¦Óóɱ¾¡£µ±Ó¦ÓùæÄ£ÐèÒªÀ©³äʱ£¬Óû§¿ÉÒÔ°´ÐèÀ©Õ¹ÏµÍ³£¬ÒÔ±£Ö¤ÏµÍ³µÄÐÔÄÜ¡£
¡¡¡¡Oracle RACÒ»°ãÒ²¿É¹¹½¨ÓÚ´óÐÍSMPÖ÷»ú£¬IBMµÄAIXϵÁзþÎñÆ÷ÍùÍùÊÇÆäÖÐ¸ß¶ËÆ½Ì¨£¬Intel LinuxÍùÍù×÷ΪÆäµÍ¶Ëƽ̨¡£µ±AIX UNIXÓÃÀ´ÔËÐÐOracle RAC×÷Ϊ´óÐÍÊý¾Ý¿âϵͳƽ̨ʱ£¬Æä¼¯ÈºÏµÍ³¹¹½¨¡¢ÊµÊ©¡¢ÔËά¡¢¸ß¿ÉÓÃÉèÖã¬ÓÐÆäÆ½Ì¨ÌØµã¡£¿ÉÒÔ²ÎÕÕ¡¶Oracle´óÐÍÊý¾Ý¿âϵͳÔÚAIX/UNIXÉϵÄʵսÏê½â¡·£¬¸ÃÊéÒÔAIX UNIXƽ̨ΪÖ÷Ïߣ¬ÒÔÆäËûUNIXϵͳΪ²ÎÕÕ£¬ÃèÊöÁËÊý¾Ý¿âϵͳOracle 10g¡¢Oracle 11gµÄRACµÄ¹¹¼Ü·½·¨ºÍ¹ý³Ì¡£ÔÚLinuxƽ̨£¬Ôò¡¶´ó»°OracleRAC¼¯Èº¡¢¸ß¿ÉÓÃÐÔ¡¢±¸·ÝÓë»Ö¸´¡·ÓÐןܺõÄÂÛÊö¡£
PowerBuilder 11ÒÔºóµÄ°æ±¾,ÔÚÔ ......
¹ØÓÚplsqlÖеÄdefine±äÁ¿ÒÔ¼°Oracle±äÁ¿·ÖÀàС½á
2009-07-29 15:18
ÏȼÇÔØ¸ÕÀ§ÈÅÎÒµÄÒ»¸öÎÊÌ⣬×î½üѧϰplsql£¬ÓÉÓÚËùÓÃѧϰÊé¼®ºóÃæÌṩÌâÄ¿³£Óõ½define±äÁ¿£¬µ«ÓÉÓÚÕâÒ»±äÁ¿µÄʹÓÃÌØÊâÐÔ£¬×Ô¼º±ãѰ˼ÕâÒ»±äÁ¿ËùÊéÀà±ð£¬OracleÌṩµÄ±äÁ¿·ÖÀ๲ÓÐËÄÀࣺ
1£©±êÁ¿£¨scalar£©ÀàÐÍ
2£©¸´ºÏ£¨composite£©ÀàÐÍ
3£©²ÎÕÕ£¨reference£©ÀàÐÍ
4£©LOB£¨large object£©ÀàÐÍ
ÕâËÄÀàÖв¢Ã»ÓÐÓëֻƥÅäµÄ·ÖÀ࣬ÔÚÍøÂçÉϲéÕҲŷ¢ÏÖËüÊôÓÚµÚÎåÀࣨÁíÀࣺ£©£©——·ÇplsqlÀà±äÁ¿¡£
define±äÁ¿£ºÖ÷ÒªÓ¦ÓÃÓÚSQL*plsÒÔ¼°ÀàËÆÓÚsql*plusµÄ¿ª·¢¹¤¾ßÖУ¬Ö÷ÒªÓÃÓÚÓÚÓû§½»»¥¡£
¶¨Òå¸ñʽ£º
define p_variable_name = 500 -- ´Ëʱֱ½Ó½«500 assign¸øp_variable_name£¬²»»áµ¯³ö¶Ô»°¿òÌáʾÓû§ÊäÈë
define p_variable_name -- ±äÁ¿Î´¸³Öµ£¬µ¯³ö¶Ô»°¿òÌáʾÓû§ÊäÈëÖµ
ʹÓøñʽ£º
select department_id into v_dept from emp where employee_id=& p_variable_name;
ÏÖ½«ÍøÉÏһƪ¹ØÓÚ±äÁ¿·ÖÀàµÄ×ܽáÎÄÕÂתÌûÈçÏ¡£
ÔÌù³ö´¦£ºhttp://superman-chenzs.itpub.net/post/29327/272479
1¡¢±êÁ¿ÀàÐÍ£º
£ Ö»ÄÜ´æ·Åµ¥¸öÊýÖµµÄ±äÁ¿
£ ¶¨Òåʱ£¬±ØÐëÒªÖ¸¶¨±êÁ¿µÄÊý¾ÝÀàÐÍ
1.1³£ÓñêÁ¿Àà ......
Êý¾Ý¿â´¥·¢Æ÷
´¥·¢Æ÷Óï¾ä
ÖÆ¶¨´¥·¢Æ÷¶¨Ê±¡¢Ê¼þ¡¢±íÃû¼°ÀàÐÍ
´¥·¢Æ÷Ö÷Ìå
ÊÇpl/sql¿ì»ò¶Ô¹ý³ÌµÄµ÷ÓÃ
´¥·¢Æ÷ÏÞÖÆ
¿ÉÒÔͨ¹ýwhen×Ó¾äʵÏÖ
DML(insert update delete)
DDL(create alter drop)
Êý¾Ý¿â²Ù×÷(servererror logon logoff startup shutdown)
create trigger ´¥·¢Æ÷Ãû
before|after insert|delete|update of ÁÐÃû
on ±íÃû
[for each row] --Ðм¶´¥·¢Æ÷
when Ìõ¼þ
´¥·¢Æ÷ν´Ê
inserting insert²Ù×÷
updating update²Ù×÷
deleting delete²Ù×÷
¿ÉÒÔ¸ù¾ÝÕâÈý¸öν´ÊÅжϵ½µ×ÔÚÖ´ÐÐÄĸö²Ù×÷
create or replace
Trigger tg_insert
before insert or update on student
for each row
begin
if updating then
dbms_output.put_line('before update');
end if;
if inserting then
dbms_output.put_line('before insert');
end if;
end;
´¥·¢Æ÷ÀàÐÍ£º & ......