《oracleDML触发器.pptx》由会员分享,可在线阅读,更多相关《oracleDML触发器.pptx(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发1主讲人:毛应爽主讲人:毛应爽第10章触发器第10章触发器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发2第第第第1010章章章章 触触触触发发器器器器10.1触触发器概述器概述10.2DML触触发器器10.3替代触替代触发器器10.4系系统触触发器器10.5用用户事件触事件触发器器10.6管理触管理触发发器器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发31 1 1 1、概念、概念、概念、概念触触触触发发器是在事件器是在事
2、件器是在事件器是在事件发发生生生生时时隐隐式地自式地自式地自式地自动动运行的运行的运行的运行的PL/SQLPL/SQLPL/SQLPL/SQL程程程程序序序序块块,不能接收参数不能接收参数不能接收参数不能接收参数,不能被不能被不能被不能被调调用用用用。2 2 2 2、触、触、触、触发发器的构成器的构成器的构成器的构成触触触触发发器名称器名称器名称器名称触触触触发发器的触器的触器的触器的触发发事件事件事件事件触触触触发发器限制条件器限制条件器限制条件器限制条件触触触触发发器主体器主体器主体器主体10.1触发器概述触发器概述ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管
3、理、应用与开发43 3 3 3、创创建触建触建触建触发发器的器的器的器的语语法格式法格式法格式法格式CREATE OR REPLACE TRIGGERCREATE OR REPLACE TRIGGERCREATE OR REPLACE TRIGGERCREATE OR REPLACE TRIGGER trigger_nametrigger_nametrigger_nametrigger_name-触触触触发发器的触器的触器的触器的触发发事件事件事件事件 BEFOREBEFOREBEFOREBEFORE|AFTERAFTERAFTERAFTER|INSTEAD OFINSTEAD OFINSTE
4、AD OFINSTEAD OF triggering_eventtriggering_eventtriggering_eventtriggering_event WHENWHENWHENWHEN trigger_condition trigger_condition trigger_condition trigger_condition -限制条件限制条件限制条件限制条件 FOR EACH ROWFOR EACH ROWFOR EACH ROWFOR EACH ROW -行行行行级级触触触触发发trigger_body;trigger_body;trigger_body;trigger_bod
5、y;-语语句体句体句体句体10.1触发器概述触发器概述ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发5说说明:明:明:明:trigger_nametrigger_nametrigger_nametrigger_name是触是触是触是触发发器的名称,器的名称,器的名称,器的名称,triggering_eventtriggering_eventtriggering_eventtriggering_event说说明了激明了激明了激明了激发发触触触触发发器的事件(也可器的事件(也可器的事件(也可器的事件(也可能包括特殊的表或能包括特殊的表或能包括特殊的表或能包
6、括特殊的表或视图视图),),),),trigger_bodytrigger_bodytrigger_bodytrigger_body是触是触是触是触发发器的代器的代器的代器的代码码。注意:注意:注意:注意:如果在如果在如果在如果在WHENWHENWHENWHEN子句中指定子句中指定子句中指定子句中指定trigger_conditiontrigger_conditiontrigger_conditiontrigger_condition的的的的话话,则则首先首先首先首先对该对该条件求条件求条件求条件求值值。触触触触发发器主体只有在器主体只有在器主体只有在器主体只有在该该条件条件条件条件为为真真真
7、真值时值时才运行。才运行。才运行。才运行。10.1触发器概述触发器概述ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发6第第第第1010章章章章 触触触触发发器器器器10.1触触发器概述器概述10.2DML触触发器器10.3替代触替代触发器器10.4系系统事件触事件触发器器10.5用用户事件触事件触发器器10.6管理触管理触发发器器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发710.2DML10.2DML触触触触发发器器器器DMLDML触触触触发发器是器是器是器是针对针对某个表某个表某个表某个表进进行行行行DM
8、LDML操作操作操作操作时时触触触触发发的。的。的。的。语语法格式:法格式:法格式:法格式:CREATE OR REPLACE TRIGGERCREATE OR REPLACE TRIGGERCREATE OR REPLACE TRIGGERCREATE OR REPLACE TRIGGER trigger_name trigger_name trigger_name trigger_name BEFOREBEFOREBEFOREBEFORE|AFTERAFTERAFTERAFTER|INSERTINSERTINSERTINSERT|DELETEDELETEDELETEDELETE|UPDAT
9、EUPDATEUPDATEUPDATE OFOFOFOF column,columncolumn,columncolumn,columncolumn,column ONONONON table_name|view_name table_name|view_name table_name|view_name table_name|view_name REFERENCINGREFERENCINGREFERENCINGREFERENCING OLDOLDOLDOLD ASold_name|ASold_name|ASold_name|ASold_name|NEWNEWNEWNEW AS AS AS A
10、S new_namenew_namenew_namenew_name FOR EACH ROWFOR EACH ROWFOR EACH ROWFOR EACH ROW WHENWHENWHENWHEN trigger_condition trigger_condition trigger_condition trigger_condition trigger_body;trigger_body;trigger_body;trigger_body;ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发8在在编写触写触发器源代器源代码之前,必之前,必须先先确定其触
11、确定其触发时间、触触发事件事件及及触触发器的器的类型型。DML触发器类型类型类型类型行级触发器语句级触发器DML触发器触发器触发触发事件事件事件事件表更新表更新表更新表更新表插入表插入表插入表插入表删除表删除表删除表删除DMLDML触发器触发器触发器触发器触发时间(时机)触发时间(时机)触发时间(时机)触发时间(时机)BEFOREBEFOREAFTERAFTER10.2DML10.2DML触触触触发发器器器器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发9触发事件触发事件(如(如INSERT、UPDATE、DELETE等)等)触发器触发器脚本脚本触发时
12、机触发时机BEFORE(事件)(事件)001001GREENGREENMEDMED98.198.1002002REDREDMEDMED12411241003003REDREDSMALLSMALL100.1100.1004004BLUEBLUELARGELARGE54.954.9005005REDREDMEDMED124.1124.1partnocolorsizeweight触发对象表触发对象表触发对象表触发对象表BEFOREBEFORE触触触触发发器器器器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发10触发器事件触发器事件(如(如INSERT、UPD
13、ATE、DELETE等)等)触发器触发器脚本脚本触发时机触发时机AFTER(事件)(事件)001GREENMED98.1002REDMED1241003REDSMALL100.1004BLUELARGE54.9005REDMED124.1partnocolorsizeweight触发对象表触发对象表触发对象表触发对象表AFTERAFTER触发器触发器触发器触发器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发11语句级触发器与行级触发器的区别:语句级触发器与行级触发器的区别:触发器脚本触发器脚本(1次)次)语句级触发器触发器脚本脚本行级行级行级触发器触发
14、器脚本脚本触发器脚本触发器脚本(n次)次)10.2DML10.2DML触触触触发发器器器器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发1210.2DML10.2DML触触触触发发器器器器1、语句句级触触发器器语句句级触触发器器在每个数据修改在每个数据修改语句句执行后只行后只调用一次用一次,而,而不管不管这一操作将影响到多少行。一操作将影响到多少行。例例1:创建一个建一个orderdetails_tablelog表并建立一个表并建立一个AFTER触触发器,用于器,用于记录是哪些用是哪些用户删除了除了orderdetails表表中的数据及中的数据及删除的
15、除的时间。CREATETABLEorderdetails_tablelog(whovarchar2(40),oper_datedate,operatevarchar2(100);ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发1310.2DML10.2DML触触触触发发器器器器CREATEORREPLACETRIGGERdele_orderdetailsAFTERdeleteONorderdetailsBEGININSERTINTOorderdetails_tablelogVALUES(user,sysdate,delete);END;注:在注:在该触触
16、发器被触器被触发后,尽管一次后,尽管一次删除多条除多条记录,但触但触发器只器只执行一次插入操作。行一次插入操作。查看触发器的定义文本使用查看触发器的定义文本使用查看触发器的定义文本使用查看触发器的定义文本使用数据字典数据字典数据字典数据字典user_sourceuser_sourceORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发1410.2DML10.2DML触触触触发发器器器器2 2、行、行、行、行级级触触触触发发器器器器行行行行级级触触触触发发器是按触器是按触器是按触器是按触发语发语句句句句所所所所处处理的行激理的行激理的行激理的行激发发的的的的,
17、可以可以可以可以引用受到影响的行引用受到影响的行引用受到影响的行引用受到影响的行值值。创创建触建触建触建触发发器器器器时时采用关采用关采用关采用关键键字字字字FOR EACH ROWFOR EACH ROWFOR EACH ROWFOR EACH ROW这这种种种种访问访问是通是通是通是通过过两个相关的两个相关的两个相关的两个相关的标识标识符符符符实现实现的的的的 :old:old :用于存放:用于存放:用于存放:用于存放未未未未进进行修改前行修改前行修改前行修改前的数据。的数据。的数据。的数据。:new:new :用于存放:用于存放:用于存放:用于存放进进行行行行修改后的数据。修改后的数据。
18、修改后的数据。修改后的数据。ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发1510.2DML触触发器器例例2:创建一个建一个orderdetails_Rowlog表并建立一个表并建立一个AFTER触触发器,用于器,用于记录是哪些用是哪些用户删除了在什么除了在什么时间删除了除了orderdetails表中的哪些行数据。表中的哪些行数据。CREATETABLEorderdetails_rowLog1(whovarchar2(40),oper_datetimestamp,operatevarchar2(100),orderidnumber,productid
19、number);ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发1610.2DML10.2DML触触触触发发器器器器CREATEORREPLACETRIGGERdeleRow_orderdetailsAFTERdeleteONorderdetailsFOREACHROWBEGININSERTINTOorderdetails_rowLogVALUES(user,sysdate,delete,:old.orderid,:old.productid);END;ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发1710.2D
20、ML触触发器器例例3:创建一个建一个BEFORE触触发器器,使得在向使得在向ORDERS表中表中插入插入记录之前之前对ShippedDate字段字段进行行检测,要求其要求其值不不允允许为周六或周日周六或周日,发货时间应在在8-18点之点之间。否。否则将提将提示示错误发货时间应为工作工作时间。ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发1810.2DML触触发器器CREATEORREPLACETRIGGERsecure_shippeddateBEFOREINSERTONordersForeachrowBEGINBEGINBEGINBEGINIFIF(T
21、O_CHAR(:new.shippeddate,(TO_CHAR(:new.shippeddate,DYDY)in)in(SATSAT,SUNSUN)OR)OR(to_number(TO_CHAR(:new.shippeddate,(to_number(TO_CHAR(:new.shippeddate,HH24HH24)NOT)NOT BETWEEN 8 AND 18)BETWEEN 8 AND 18)THENTHEN RAISE_APPLICATION_ERROR(-20500,RAISE_APPLICATION_ERROR(-20500,发货时间应为工作工作时间););END IF;END
22、 IF;END;END;ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发19使用使用使用使用“:old”:old”和和和和“:new”:new”应应注意:注意:注意:注意:在在BEFORE类型行型行级触触发器和器和AFTER类型行型行级触触发器中器中使用使用这些些标识符。符。在在语句句级触触发器中不要使用器中不要使用这些些标识符。符。在在PL/SQL语句或句或SQL语句中,句中,这些些标识符前加上冒号符前加上冒号(:)来引用它来引用它们。在行在行级触触发器器的的WHEN条件中使用条件中使用该标识符符时,前面,前面不要不要加冒号(加冒号(:).在在BEFO
23、RE触触发器器中中不能修改不能修改“:old”,在,在AFTER触触发器器中中不能修改不能修改“:new”10.2DML10.2DML触触触触发发器器器器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发20触发时机触发时机BEFORE后,后,:new的值还没有被插入到表里,的值还没有被插入到表里,因此因此:new可以修可以修改,而此时,改,而此时,:old值是表中没有被修改的值,因此不能被修改值是表中没有被修改的值,因此不能被修改触发器触发器脚本脚本触发时机触发时机BEFORE(事件)(事件)001GREENMED98.1002REDMED1241003
24、REDSMALL100.1004BLUELARGE54.9005REDMED124.1partnocolorsizeweight触发对象表:new:oldORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发21触发器事件触发器事件(如(如INSERT、UPDATE、DELETE等)等)触发器触发器脚本脚本:new:old触发时机触发时机AFTER后,后,:new的值已经被插入到表里,因此:new不能修改001GREENMED98.1002REDMED1241003REDSMALL100.1004BLUELARGE54.9005REDMED124.1partn
25、ocolorsizeweight触发时机触发时机AFTER(事件)(事件)ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发2210.2DML10.2DML触触触触发发器器器器例句例句例句例句4 4 4 4:用触:用触:用触:用触发发器器器器实现实现在用在用在用在用户户添加数据添加数据添加数据添加数据时时,使用序列使用序列使用序列使用序列生成的数字生成的数字生成的数字生成的数字,为为表的主表的主表的主表的主键键提供自提供自提供自提供自动编动编号的号的号的号的键值键值。-创创建表建表建表建表CREATETABLECREATETABLEtemp_tablete
26、mp_table(temp_idnumber,namevarchar2(30);(temp_idnumber,namevarchar2(30);-创创建序列建序列建序列建序列CREATESEQUENCECREATESEQUENCEincrIDincrIDSTARTWITH10STARTWITH10INCREMENTBY5INCREMENTBY5NOMAXVALUENOMAXVALUECACHE10;CACHE10;ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发2310.2DML10.2DML触触触触发发器器器器-创建触建触发器以提供自器以提供自动编号的
27、号的键值CREATEORREPLACETRIGGERincr_triggerBEFOREINSERTONtemp_tableFOREACHROWDECLAREnext_nonumber;BEGINSELECTincrID.nextvalINTOnext_noFROMDUAL;:new.temp_id:=next_no;END;ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发24当一个触发器中的触发事当一个触发器中的触发事件中既有件中既有删除、更新又有删除、更新又有插入插入时,如何判断触发器时,如何判断触发器是因哪个事件而动作?是因哪个事件而动作?在在IF
28、语句中使用触发器谓词(语句中使用触发器谓词(INSERTING、UPDATING、DELETING)10.2DML10.2DML触发器触发器触发器触发器3、多条件触发形式、多条件触发形式:CREATEORREPLACETRIGGERCREATEORREPLACETRIGGERBEFOREinsertORupdateORdeleteONBEGINIFINSERTINGTHENENDIF;IFDELETINGTHENENDIF;IFUPDATINGTHENENDIF;End;ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发25例句例句例句例句例句例句5 5
29、5 5 5 5:用触:用触:用触:用触:用触:用触发发发器增器增器增器增器增器增强强强参照完整性参照完整性参照完整性参照完整性参照完整性参照完整性约约约束。当束。当束。当束。当束。当束。当ordersordersordersordersordersorders表的表的表的表的表的表的orderidorderidorderidorderidorderidorderid发发发生生生生生生变变变化化化化化化时时时,orderdetailsorderdetailsorderdetailsorderdetailsorderdetailsorderdetails表的相关行也跟着表的相关行也跟着表的相关行也
30、跟着表的相关行也跟着表的相关行也跟着表的相关行也跟着进进进行适行适行适行适行适行适当的修改。当的修改。当的修改。当的修改。当的修改。当的修改。CREATEORREPLACETRIGGERcascade_updateordersAFTERupdateORdeleteONordersFOREACHROWBEGINIFupdatingTHENUPDATEorderdetailsSETorderdetails.orderid=:new.orderidWHEREorderdetails.orderid=:old.orderid;ENDIF;IFdeletingTHENDELETEFROMorderdet
31、ailsWHEREorderdetails.orderid=:old.orderid;ENDIF;END;10.2DML10.2DML触发器触发器触发器触发器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发2610.2DML10.2DML触触触触发发器器器器4 4、级联级联触触触触发发器器器器把把把把一个数据一个数据一个数据一个数据库库触触触触发发器的器的器的器的动动作作作作与与与与另一个触另一个触另一个触另一个触发发器器器器联联系起来,系起来,系起来,系起来,使使使使之之之之触触触触发发另一个触另一个触另一个触另一个触发发器器器器。例例例例5:5:创创
32、建建建建3 3个表个表个表个表A A、B B、C C,在表,在表,在表,在表A A上上上上设设置一个置一个置一个置一个INSERTINSERT触触触触发发器,用于向表器,用于向表器,用于向表器,用于向表B B添加一条添加一条添加一条添加一条记录记录,在表,在表,在表,在表BB上上上上设设置一个置一个置一个置一个INSERTINSERT触触触触发发器,用于向表器,用于向表器,用于向表器,用于向表C C添加一条添加一条添加一条添加一条记录记录,在表,在表,在表,在表CC上上上上设设置一个置一个置一个置一个INSERTINSERT触触触触发发器,用于器,用于器,用于器,用于对对表中的所有表中的所有表
33、中的所有表中的所有记录进记录进行更新行更新行更新行更新(+10(+10)1)1)创创建建建建A A、B B、C C三三三三张张表表表表CREATETABLEA(AIDnumber);CREATETABLEA(AIDnumber);CREATETABLEB(BIDnumber);CREATETABLEB(BIDnumber);CREATETABLEC(CIDnumber);CREATETABLEC(CIDnumber);ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发2710.2DML10.2DML触触触触发发器器器器-在表在表A上上创建建INSERT触触
34、发器器CREATEORREPLACETRIGGERinsert_aAFTERinsertONABEGININSERTINTObVALUES(1);END;-在表在表B上上创建建INSERT触触发器器CREATEORREPLACETRIGGERinsert_bAFTERinsertONBBEGININSERTINTOcVALUES(2);END;ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发2810.2DML10.2DML触触触触发发器器器器-在表在表C上上创建建INSERT触触发器器CREATEORREPLACETRIGGERinsert_aAFTER
35、insertONCBEGINUPDATEaSETaid=aid+10;End;-测试,向,向A表插入数据表插入数据5INSERTINTOAVALUES(5);ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发295 5、限制触、限制触、限制触、限制触发发器的器的器的器的执执行行行行WHENWHEN子句来保子句来保子句来保子句来保证证,当某些,当某些,当某些,当某些行行行行满满足一定条件足一定条件足一定条件足一定条件时时,在,在,在,在该该行上行行上行行上行行上行级级触触触触发发器才被触器才被触器才被触器才被触发发。它它它它只适用于行只适用于行只适用于行只适
36、用于行级级触触触触发发器器器器在在在在WHENWHEN的的的的条条条条件件件件中中中中,oldold和和和和newnew或或或或在在在在REFERENCINGREFERENCING子句中子句中子句中子句中为为oldold和和和和newnew起的起的起的起的别别名,都不加冒号(:)名,都不加冒号(:)名,都不加冒号(:)名,都不加冒号(:)。10.2DML10.2DML触触触触发发器器器器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发30例例例例6:6:在在在在productsproducts表上表上表上表上创创建一个触建一个触建一个触建一个触发发器器器
37、器,用于在更新用于在更新用于在更新用于在更新产产品品品品单单价价价价时时,如果是,如果是,如果是,如果是类别为类别为的的的的产产品品品品则则打九五折,其他的打九五折,其他的打九五折,其他的打九五折,其他的产产品价格按需要品价格按需要品价格按需要品价格按需要进进行更新。行更新。行更新。行更新。CREATEORREPLACETRIGGERCREATEORREPLACETRIGGERupdate_prodpriceupdate_prodpriceBEFOREUPDATEOFBEFOREUPDATEOF unitpriceunitpriceONONproductsproductsFOREACHROWF
38、OREACHROWWHEN(new.categoryid=2)WHEN(new.categoryid=2)BEGINBEGIN:new.unitprice:=:old.unitprice*0.95;:new.unitprice:=:old.unitprice*0.95;ENDEND;10.2DML10.2DML触触触触发发器器器器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发31测试语句句:UPDATEproductsSETunitprice=unitprice+10WHEREproductid=3;UPDATEproductsSETunitprice
39、=unitprice+10WHEREproductid=1;10.2DML10.2DML触触触触发发器器器器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发326 6 6 6 6 6、触、触、触、触、触、触发时发时发时机机机机机机BEFORE触触发器器和和AFTER触触发器器在在触触发过程程中中各各自自执行行的的顺序序不不同同。一一般般执行行的的顺序序是是BEFORE触触发器器、约束束、表的表的DML操作操作和和AFTER触触发器器。当一个表上有多个触当一个表上有多个触当一个表上有多个触当一个表上有多个触发器时,每个触发器发器时,每个触发器发器时,每个触
40、发器发器时,每个触发器都是何时触发?都是何时触发?都是何时触发?都是何时触发?10.2DML触发器触发器ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发33触触触触触触发发发器的限制器的限制器的限制器的限制器的限制器的限制CREATE TRIGGER语句句文文本本的的字字符符长度度不不能能超超过32KB;或或者者,如如果果触触发器器的的逻辑编码超超过60行行,则最最好好将将主主要要代代码保保存存到到存存储过程程里里。使使用用时只只需需从从触触发器器中中调用存用存储过程即可。程即可。不不要要创建建递归式式触触发器器,否否则,系系统会会因因触触发器器与与表表
41、之之间的循的循环操作而操作而导致内存用尽,系致内存用尽,系统崩崩溃。触触发器器体体内内的的SELECT语句句只只能能为SELECTINTO结构,或者构,或者为定定义游游标所使用的所使用的SELECT语句。句。触触发器器中中不不能能使使用用数数据据库事事务控控制制语句句COMMIT,ROLLBACK,SVAEPOINT语句句;ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发34触触触触触触发发发器的限制器的限制器的限制器的限制器的限制器的限制由由由由触触触触发发器器器器所所所所调调用用用用的的的的过过程程程程或或或或函函函函数数数数也也也也不不不不能能能能
42、使使使使用用用用数数数数据据据据库库事事事事务务控制控制控制控制语语句句句句;不能不能不能不能在触在触在触在触发发体内体内体内体内使用使用使用使用DDLDDL语语句句句句;触触触触发发器器器器中中中中不不不不能能能能声声声声明明明明LONG,LONG,LONGLONGRAWRAW类类型型型型变变量量量量,也也也也不不不不能能能能在在在在触触触触发发表表表表的的的的LONGLONG或或或或LONGLONG RAWRAW列列列列上上上上使使使使用用用用:new:new和和和和:old:old;触触触触发发器器器器内内内内可可可可以以以以读读取取取取LOBLOB类类型型型型的的的的列列列列值值,但但
43、但但不不不不能能能能通通通通过过:NEW:NEW修改修改修改修改LOBLOB列中的数据列中的数据列中的数据列中的数据ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发35小小小小小小结结结 掌握掌握掌握掌握 1 1、理解触、理解触发器的概念及作用器的概念及作用2 2、掌握触、掌握触发器的器的应用用ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发36策 划:毛应爽课 件 制 作:毛应爽电 话:0431-86822050E-mail地址:谢谢!ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、
44、应用与开发演讲完毕,谢谢观看!ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发OracleERPOracleERP主要模主要模主要模主要模块块块块 InvoicesARENGBOMWIPBills andRoutingsShipmentsECOSWorkOrdersGLAPPlanning(MRP)POMaterialRequirementsEnterpriseDemandVendor POInterplant POReceiptsWorkOrders CustomersJournal EntriesJournal EntriesJournal Entr
45、iesVendor InvoicesVendor PaymentsTransportationInformationBillsItemsOEINVINVInternalPaymentsCorporateJournal EntriesShipments OrdersFAMass AdditionJournal EntriesCOSTCOSTCOSTReceipts财务配销HRPayroll制造人力资源ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发财务系统模块财务系统模块财务系统模块财务系统模块:OracleOracle总帐管理(总帐管理(总帐管理(总帐管
46、理(GLGL)OracleOracle应付帐管理(应付帐管理(应付帐管理(应付帐管理(APAP)OracleOracle固定资产管理(固定资产管理(固定资产管理(固定资产管理(FAFA)OracleOracle应收帐管理(应收帐管理(应收帐管理(应收帐管理(ARAR)OracleOracle现金管理(现金管理(现金管理(现金管理(CECE)OracleOracle项目会计(项目会计(项目会计(项目会计(PAPA)OracleOracle财务分析(财务分析(财务分析(财务分析(OFAOFA)分销系统模块分销系统模块分销系统模块分销系统模块:OracleOracle库存管理(库存管理(库存管理(库
47、存管理(INVINV)OracleOracle采购管理(采购管理(采购管理(采购管理(PURPUR)OracleOracle销售定单管理(销售定单管理(销售定单管理(销售定单管理(OEOE)OracleOracle销售销售销售销售&市场管理(市场管理(市场管理(市场管理(SMSM)OracleOracle销售补偿管理(销售补偿管理(销售补偿管理(销售补偿管理(SCSC)OracleOracle售后服务管理(售后服务管理(售后服务管理(售后服务管理(SRSR)OracleOracle销售分析(销售分析(销售分析(销售分析(OSAOSA)OracleERPOracleERP模模模模块块清清清清单单
48、ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发制造系统模块制造系统模块制造系统模块制造系统模块:OracleOracle计划管理(计划管理(计划管理(计划管理(MPS/MRPMPS/MRP)OracleOracle能力计划管理(能力计划管理(能力计划管理(能力计划管理(CAPCAP)OracleOracle制造数据管理(制造数据管理(制造数据管理(制造数据管理(BOMBOM)OracleOracle车间生产管理(车间生产管理(车间生产管理(车间生产管理(WIPWIP)OracleOracle成本管理(成本管理(成本管理(成本管理(CSTCST)Orac
49、leOracle项目制造(项目制造(项目制造(项目制造(PJM)PJM)OracleOracle流程制造流程制造流程制造流程制造(OPM)(OPM)OracleOracle质量管理(质量管理(质量管理(质量管理(QM)QM)其他系统模块其他系统模块其他系统模块其他系统模块:OracleOracle设备管理(设备管理(设备管理(设备管理(EMEM)OracleOracle人事管理(人事管理(人事管理(人事管理(HRHR)OracleOracle薪金管理(薪金管理(薪金管理(薪金管理(PAYROLLPAYROLL)OracleOracle系统管理(系统管理(系统管理(系统管理(SYSTEMADMI
50、NSYSTEMADMIN)OracleOracle预警(预警(预警(预警(ALTALT)OracleOracle多维数据分析多维数据分析多维数据分析多维数据分析/商业智能系统商业智能系统商业智能系统商业智能系统(OLAP/BISOLAP/BIS)OOracleracle桌面集成(桌面集成(桌面集成(桌面集成(ADIADI)OOracleERPracleERP模模模模块块清清清清单单ORACLE 10g ORACLE 10g 数据库数据库管理、应用与开发管理、应用与开发OracleApplicationsOracleApplicationsORACLE 10g ORACLE 10g 数据库数据库