oracle ±Ê¼Ç V Ö®´¥·¢Æ÷ (TRIGGER)
´¥·¢Æ÷ trigger
·ÖÀࣺǰ´¥·¢£¬ºó´¥·¢
Ðд¥·¢Æ÷£¬Óï¾ä´¥·¢Æ÷
Ðд¥·¢Æ÷ÓëÓï¾ä´¥·¢Æ÷µÄÇø±ð£º
Ðд¥·¢Æ÷ÒªÇóµ±Ò»¸ö DML Óï¾ä²Ù×÷Ó°ÏìÊý¾Ý¿âÖеĶàÐÐÊý¾Ýʱ£¬¶ÔÓÚÆäÖеÄÿ¸öÊý¾ÝÐУ¬Ö»ÒªËüÃÇ·ûºÏ´¥·¢Ô¼ÊøÌõ¼þ£¬¾ù¼¤»îÒ»´Î´¥·¢Æ÷,FOR EACH ROW Ñ¡Ïî˵Ã÷´¥·¢Æ÷ΪÐд¥·¢Æ÷£»
Óï¾ä´¥·¢Æ÷½«Õû¸öÓï¾ä²Ù×÷ ×÷Ϊ´¥·¢Ê¼þ£¬µ±ËüÃÇ·ûºÏÔ¼ÊøÌõ¼þʱ£¬¼¤»îÒ»´Î´¥·¢Æ÷
´´½¨Óï·¨:
create or replace trigger trigger_name
before |after
insert |delete | update |{[of column[,column ...]]
on [schema.]table_name
for each row
[when condition]
trigger_body;
eg(×ÐϸÌå»á):
create or replace trigger hello_tri
before insert or delete or update on emp
for each row
begin
dbms_output.put_line('ÎÒÊÇ´¥·¢Æ÷£¡');
end;
Ïà¹ØÎĵµ£º
oracle±í¿Õ¼ä²Ù×÷Ïê½â
1
2
3×÷Õߣº À´Ô´£º ¸üÐÂÈÕÆÚ£º2006-01-04
5
6
7½¨Á¢±í¿Õ¼ä
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
1:pfileºÍspfile
ÔÚ9i֮ǰ£¬²ÎÊýÎļþÖ»ÓÐÒ»ÖÖ£¬ËüÊÇÎı¾¸ñʽµÄ£¬³ÆÎªpfile£¬ÔÚ9i¼°ÒÔºóµÄ°æ±¾ÖУ¬ÐÂÔöÁË·þÎñÆ÷²ÎÊýÎļþ,³ÆÎªspfile,ËüÊǶþ½øÖƸñʽµÄ¡£ÕâÁ½ÖÖ²ÎÊýÎļþ¶¼ÊÇÓÃÀ´´æ´¢²Î ÊýÅäÖÃÒÔ¹©oracle¶ÁÈ¡µÄ£¬µ«Ò²Óв»Í¬µã£¬×¢ÒâÒÔϼ¸µã£º
1)pfileÊÇÎı¾Îļþ£¬spfileÊǶþ½øÖÆÎļþ£»
2)¶ÔÓÚ²ÎÊýµÄÅäÖã¬pfile¿ÉÒÔÖ±½ÓÒÔÎ ......
Óαê(CURSOR),ºÜÖØÒª
Óαê:ÓÃÓÚ´¦Àí¶àÐмǼµÄÊÂÎñ
ÓαêÊÇÒ»¸öÖ¸ÏòÉÏÏÂÎĵľä±ú(handle)»òÖ¸Õë,¼òµ¥Ëµ£¬Óαê¾ÍÊÇÒ»¸öÖ¸Õë
1 ´¦ÀíÏÔʽÓαê
ÏÔʽÓα괦ÀíÐè 4¸ö PL/SQL ²½Öè,ÏÔʾÓαêÖ÷ÒªÓÃÓÚ´¦Àí²éѯÓï¾ä
(1) ¶¨ÒåÓαê
¸ñʽ: CURSOR cursor_name [(partment[,parameter]...)] IS s ......
OracleÊý¾Ý¿âÌṩÁ˼¸ÖÖ²»Í¬µÄÊý¾Ý¿âÆô¶¯ºÍ¹Ø±Õ·½Ê½£¬±¾ÎĽ«Ïêϸ½éÉÜÕâЩÆô¶¯ºÍ¹Ø±Õ·½Ê½Ö®¼äµÄÇø±ðÒÔ¼°ËüÃǸ÷×Ô²»Í¬µÄ¹¦ÄÜ¡£
Ò»¡¢Æô¶¯ºÍ¹Ø±ÕOracleÊý¾Ý¿â
¡¡¡¡¶ÔÓÚ´ó¶àÊýOracle DBAÀ´Ëµ£¬Æô¶¯ºÍ¹Ø±ÕOracleÊý¾Ý¿â×î³£Óõķ½Ê½¾ÍÊÇÔÚÃüÁîÐз½Ê½ÏµÄServer Manager¡£´ÓOracle 8iÒÔºó£¬ÏµÍ³½«Server ManagerµÄËùÓй¦Äܶ¼¼¯Öе ......
¡¡¡¡1´´½¨Ð±í
¡¡¡¡1.1´Ó²éѯµ½µÄ±í´´½¨±í
¡¡¡¡create table temp as select stuName,stuNo,stuSex from stuInfo where stuAge>25;
¡¡¡¡1.2´´½¨Ð±í
¡¡¡¡/*ѧÉúÐÅÏ¢±í*/
¡¡¡¡create table stuInfo(
¡¡¡¡stuName varchar2(10) ,
¡¡¡¡stuNo varchar2(10),
¡¡¡¡stuSex varchar2(4),
¡¡¡¡stuAge number(2),
¡¡¡¡st ......