Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ORACLE PL/SQL ´¥·¢Æ÷(trigger)ѧϰ±Ê¼Ç

1¡¢´¥·¢Æ÷µÄ¸ÅÄî
´¥·¢Æ÷Ò²ÊÇÒ»ÖÖ´øÃûµÄPL/SQL¿é¡£´¥·¢Æ÷ÀàËÆÓÚ¹ý³ÌºÍº¯Êý£¬ÒòΪËüÃǶ¼ÊÇÓµÓÐÉùÃ÷¡¢Ö´ÐкÍÒì³£´¦Àí¹ý³ÌµÄ´øÃûPL/SQL¿é¡£Óë°üÀàËÆ£¬´¥·¢Æ÷±ØÐë´æ´¢ÔÚÊý¾Ý¿âÖв¢ÇÒ²»Äܱ»¿é½øÐб¾µØ»¯ÉùÃ÷¡£
¶ÔÓÚ´¥·¢Æ÷¶øÑÔ£¬µ±´¥·¢Ê¼þ·¢ÉúµÄʱºò¾Í»áÏÔʽµØÖ´Ðиô¥·¢Æ÷£¬²¢ÇÒ´¥·¢Æ÷²»½ÓÊܲÎÊý¡£
 
´´½¨´¥·¢Æ÷µÄÓï·¨ÈçÏÂ
 
 
CREATE [OR REPLACE] TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF} triggering_event
[referencing_clause]
[WHEN trigger_condition]
[FOR EACH ROW]
Trigger_body;
  
ÆäÖÐreferencing_clause×Ó¾äµÄÓÃ;ÊÇͨ¹ýÒ»¸ö²»Í¬µÄÃû³Æ£¬ÒýÓõ±Ç°ÕýÔÚ±»¸üеļǼÐÐÖеÄÊý¾Ý¡£WHEN×Ó¾äÖеÄtrigger_condition—Èç¹û³öÏÖ—¾ÍÓ¦¸ÃÊ×ÏÈÖ´ÐÐÅжϣ¬Ö»Óе±Õâ¸öÌõ¼þÖµÎªÕæµÄʱºò£¬²Å»áÖ´Ðд¥·¢Æ÷µÄÖ÷Ìå´úÂë¡£
 
 
2¡¢DML´¥·¢Æ÷µÄ¼¤»î˳Ðò
1£©Ö´ÐÐbeforeÓï¾ä¼¶´¥·¢Æ÷—Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
2£©¶ÔÊܸÃÓï¾äÓ°ÏìµÄÿһÐмǼ
Ö´ÐÐbeforeÐм¶´¥·¢Æ÷—Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
Ö´ÐиÃÓï¾ä±¾Éí
Ö´ÐÐafterÐм¶´¥·¢Æ÷--Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
3£©Ö´ÐÐafterÓï¾ä¼¶´¥·¢Æ÷--Èç¹û´æÔÚÕâÖÖ´¥·¢Æ÷
 
ͬһÖÖÀàÐ͵Ĵ¥·¢Æ÷µÄµã»ð´ÎÐòûÓо­¹ý¶¨Òå¡£Èç¹û¸Ã´ÎÐòºÜÖØÒªµÄ»°£¬ÄÇô½¨Ò齫ËùÓÐÕâЩ²Ù×÷×éºÏµ½Ò»¸ö´¥·¢Æ÷µ±ÖС£
 
3¡¢Ðм¶´¥·¢Æ÷ÖеĹØÁª±êʶ·û
´¥·¢Æ÷µÄ¼¤»îÓï¾äÿ´¦ÀíÒ»ÐÐÊý¾Ý£¬Ðм¶´¥·¢Æ÷¾Í»á¼¤»îÒ»´Î¡£¿ÉÒÔÔÚÕâÖÖÐм¶´¥·¢Æ÷ÄÚ²¿£¬·ÃÎÊÕý±»´¦ÀíµÄ¼Ç¼ÐÐÖеÄÊý¾Ý¡£ÕâÊÇͨ¹ýÁ½¸ö¹ØÁª±êʶ·û--:oldºÍ:new—ʵÏֵġ£¹ØÁª±êʶ·ûÒ²ÊÇPL/SQLµÄÒ»ÖÖÌØÊâµÄ°ó¶¨±äÁ¿¡£±êʶ·ûÇ°ÃæµÄðºÅ£¬¼È˵Ã÷Õâ¶þÕß¶¼Êǰ󶨱äÁ¿£¬Í¬Ê±Ò²ËµÃ÷ËüÃDz»ÊÇÒ»°ãµÄPL/SQL±äÁ¿¡£PL/SQL±àÒëÆ÷»á½«ËüÃÇ¿´×÷ÏÂÃæÕâ¸öÀàÐ͵ļǼ£º
 
Triggering_table%ROWTYPE
 
ÆäÖÐtriggering_tableÊÇÔÚÆäÉ϶¨Òå´¥·¢Æ÷µÄ±íÃû¡£ÓÚÊÇ£¬ÏÂÃæÕâÖÖÒýÓÃ
 
:new.field
 
¾ÍÖ»Óе±ÆäÖеÄfieldÊǸô¥·¢±íÖеÄ×Ö¶ÎÃûʱ²Å»áÓÐЧ¡£
 
´¥·¢Óï¾ä
:old
:new
INSERT
䶨Òå—ËùÓÐ×ֶξùΪNULL
´¥·¢Óï¾äÍê³ÉµÄʱºò£¬Òª²åÈëµÄÖµ
UPDATE
¸üÐÂÒÔǰÏàÓ¦¼Ç¼ÐеÄԭʼֵ
´¥·¢Óï¾äÍê³ÉµÄʱºò£¬Òª¸üеÄÖµ
DELETE
ɾ³ýÒÔǰÏàÓ¦¼Ç¼ÐеÄԭʼֵ
䶨Òå—ËùÓÐ×ֶξùΪNULL
 
×¢Ò⣺INSERTÓï¾äÉÏûÓж¨Òå:old±êʶ·û£¬DELETEÓï¾äÉÏҲûÓж¨Òå:new±êʶ·û¡£Èç¹ûÔÙINSERTÓï¾äÉ


Ïà¹ØÎĵµ£º

pl plusÖ´Ðб¾µØµÄsqlÎļþÖеÄsqlÓï¾ä


¹¦ÄÜ£ºpl plusÖ´Ðб¾µØµÄsqlÎļþÖеÄsqlÓï¾ä
˵Ã÷£º±ÈÈ磺e:\zhaozhenlongÏÂÓÐcreate_table.sqlÎļþ£¬Ôò°´ÈçÏ·½·¨Ö´ÐУº
²½Ö裺
1¡¢ÔÚpl plusµÄ windowÏ£¬
 
2¡¢Ö´ÐУº
@e:\zhaozhenlong\drop_table.sql
@e:\zhaozhenlong\create_table.sql
......

Oracle PL/SQL¿é½á¹¹ºÍ×é³ÉÔªËØÑ§Ï°±Ê¼Ç(Ò»)

Ò»£¬PL/SQL¿éµÄ½á¹¹ºÍ×é³ÉÔªËØ
PL/SQL³ÌÐòÓÉÉùÃ÷²¿·Ö£¬Ö´Ðв¿·Ö£¬Òì³£´¦Àí²¿·ÖÈý¸ö²¿·Ö×é³É¡£½á¹¹ÈçÏ£º
DECLARE
/*ÉùÃ÷²¿·Ö£ºÔÚ´ËÉùÃ÷PL/SQL±äÁ¿£¬ÀàÐͼ°Óα꣬ÒÔ¼°¾Ö²¿µÄ´æ´¢¹ý³ÌºÍº¯Êý*/
BEGIN
/*Ö´Ðв¿·Ö£º¹ý³Ì¼°sqlÓï¾ä£¬³ÌÐòÖ÷Òª²¿·Ö£¬ÊDZØÐëµÄ*/
EXCEPTION
/*Òì³£´¦Àí²¿·Ö£º´íÎó´¦Àí*/
END
 
PL/SQL¿ ......

sqlº¯Êý³£Óú¯Êý

1.     select replace(CA_SPELL,' ','') from hy_city_area  È¥³ýÁÐÖеÄËùÓпոñ
2.     LTRIM£¨£© º¯Êý°Ñ×Ö·û´®Í·²¿µÄ¿Õ¸ñÈ¥µô
3.     RTRIM£¨£© º¯Êý°Ñ×Ö·û´®Î²²¿µÄ¿Õ¸ñÈ¥µô
4.     select LOWER(replace(CA_SPELL,' ','')) f ......

£¨×ª£©SQL¾­µäÃæÊÔÌ⼯£¨¶þ£©

µÚʮһÌ⣺
Óбístudents(name,class,grade),ÇëÓñê×¼sqlÓï¾äÍê³É
name class grade
ÕÅÈý Êýѧ 81
ÀîËÄ ÓïÎÄ 70
ÍõÎå Êýѧ 90
ÕÅÈý ÓïÎÄ 60
ÀîËÄ Êýѧ 100
ÍõÎå ÓïÎÄ 90
ÍõÎå Ó¢Óï 81
ÒªÇó: ÓÃsqlÓï¾äÊä³ö¸÷ÃŹ¦¿Î¶¼´óÓÚ80·ÖµÄͬѧÐÕÃû?
create table students (
name varchar(25),
class varchar(25),
grad ......

ORACLE PL/SQL°ü(package)ѧϰ±Ê¼Ç

°üÓɰü¹æ·¶ºÍ°üÌåÁ½²¿·Ö×é³É¡£
 
1¡¢°ü¹æ·¶£¨Package Specification£©
°ü¹æ·¶£¬Ò²½Ð×ö°üÍ·£¬°üº¬ÁËÓйذüµÄÄÚÈݵÄÐÅÏ¢¡£µ«ÊÇ£¬Ëü²»°üº¬Èκιý³ÌµÄ´úÂë¡£
´´½¨°üÍ·µÄÓï·¨Ò»°ãÈçÏÂ
 
CREATE [OR REPLACE] PACKAGE package_name {IS | AS}
Procedure_name | function_name | variable_declaration | type_def ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ