oracle触发器怎么写(Oracle的触发器怎么写)

2025-04-13 18:00:03 0

oracle触发器怎么写(Oracle的触发器怎么写)

本文目录

Oracle的触发器怎么写

我以前做的一个例子,你参考下吧第八章 触发器(Trigger)--格式:create or replace trigger 名称 declare ....begin ...exception ....end;--创建一个delete类型行级触发器--删除的一行数据保存在:oldcreate or replace trigger emp_delete_row_triggerafter deleteon empreferencing new as n old as ofor each rowbegin dbms_output.put_line(’emp_delete_row_trigger called.’); dbms_output.put_line(’删除员工:’ || :o.empno || ’ ’ || :o.ename);end;delete from emp where empno=7499;delete from emp;--创建一个insert类型行级触发器--插入的一行新数据保存在:newcreate or replace trigger emp_insert_row_triggerafter inserton empfor each rowbegin dbms_output.put_line(’emp_insert_row_trigger called.’); dbms_output.put_line(’添加员工:’ || :new.empno || ’ ’ || :new.ename);end;insert into emp(empno,ename) values(1,’empxxx’);--创建一个update类型行级触发器--修改前的数据保存在:old--修改后的数据保存在:newcreate or replace trigger emp_update_row_triggerafter updateon empfor each rowbegin dbms_output.put_line(’emp_update_row_trigger called.’); dbms_output.put_line(’修改前:’ || :old.empno || ’ ’ || :old.ename); dbms_output.put_line(’修改后:’ || :new.empno || ’ ’ || :new.ename);end;update empset ename=’xxxx’where empno=7499;--语句级触发器(update,delete,insert)create or replace trigger delete_stmt_triggerafter deleteon empbegin dbms_output.put_line(’delete_stmt_trigger called.’);end;delete from emp;--判断触发器类型------------------------------------------------------------每进行一次交易,就要调用触发器,自动扣除或增加账户金额----------------------------------------------------------create table account( customerName varchar2(30) primary key, cardID varchar2(8), currentMoney number);insert into account values(’Daivd’,’10010001’,5000);insert into account values(’Jason’,’10010002’,3000);create table trans( transDate date, cardID varchar2(8), transType varchar2(10), transMoney number);insert into trans values(sysdate,’10010001’,’取款’,1000);create or replace trigger trans_triggerbefore inserton transfor each rowdeclare v_currentMoney account.currentMoney%type;begin --判断类型 if :new.transType=’取款’ then --取款 select currentMoney into v_currentMoney from account where cardID=:new.cardID; if v_currentMoney 《 :new.transMoney then raise_application_error(-20001,’余额不足’); end if; update account set currentMoney=currentMoney-:new.transMoney where cardID=:new.cardID; else --存款 update account set currentMoney=currentMoney+:new.transMoney where cardID=:new.cardID; end if;exception when no_data_found then raise_application_error(-20002,’无效的帐户’);end;--模式(schema)级触发器create or replace trigger schema_triggerbefore dropon schemabegin dbms_output.put_line(’schema_trigger called’); dbms_output.put_line(ora_dict_obj_name); dbms_output.put_line(ora_dict_obj_type); if ora_dict_obj_name=’ACCOUNT’ then raise_application_error(-20003,’ACCOUNT表不能被删除’); end if;end;drop table account;--ora_dict_obj_name 操作对象名称--ora_dict_obj_type 操作对象类型--启用触发器alter trigger schema_trigger enable;--禁用触发器alter trigger schema_trigger disable;

oracle触发器怎么写

  1. 创建触发器,给触发器命名,在哪个表上的增删改进行触发,是否为行级触发

  2. 编写你的逻辑

  3. 编译检查是否有语法错误啥的

  4. 测试,这里的话,就是你某一个工种的最低工资增加,那属于这个工种的员工中原来是最低工资的也要增加,所以你要先把工种中最低工资查出来,根据工种号,查询属于该工种的人有哪些,把这些员工的工资查出来,再修改工种的最低工资,再查员工工资是否也增加了。

你这表也没有,我门也没有办法给你写一个很详细的。大致思路一般是这样

Oracle 触发器怎么写

这个只能遗憾的告诉你,不能实现因为触发器中不能运行 ddl语句和commit,rollback语句所谓的ddl语句就是用语定义和管理数据库中的对象,如Create,Alter,Drop,truncate等,DDL操作是隐性提交的!其实刚才写了一个,创建的时候没问题,但是往a里插入数据时报错create or replace trigger t_add_colafter insert on a for each rowbegin execute immediate ’alter table b add ’||:new.fieldname||’ varchar2(30)’;end; 错误就是ora-04092,你可以看一下

oracle的触发器怎么写

我以前做的一个例子,你参考下吧第八章触发器(Trigger)--格式:createorreplacetrigger名称declare.beginexception.end;--创建一个delete类型行级触发器--删除的一行数据保存在:oldcreateorreplacetriggeremp_delete_row_triggerafterdeleteonempreferencingnewasnoldasoforeachrowbegindbms_output.put_line(’emp_delete_row_triggercalled.’);dbms_output.put_line(’删除员工:’||:o.empno||’’||:o.ename);end;deletefromempwhereempno=7499;deletefromemp;--创建一个insert类型行级触发器--插入的一行新数据保存在:newcreateorreplacetriggeremp_insert_row_triggerafterinsertonempforeachrowbegindbms_output.put_line(’emp_insert_row_triggercalled.’);dbms_output.put_line(’添加员工:’||:new.empno||’’||:new.ename);end;insertintoemp(empno,ename)values(1,’empxxx’);--创建一个update类型行级触发器--修改前的数据保存在:old--修改后的数据保存在:newcreateorreplacetriggeremp_update_row_triggerafterupdateonempforeachrowbegindbms_output.put_line(’emp_update_row_triggercalled.’);dbms_output.put_line(’修改前:’||:old.empno||’’||:old.ename);dbms_output.put_line(’修改后:’||:new.empno||’’||:new.ename);end;updateempsetename=’xxxx’whereempno=7499;--语句级触发器(update,delete,insert)createorreplacetriggerdelete_stmt_triggerafterdeleteonempbegindbms_output.put_line(’delete_stmt_triggercalled.’);end;deletefromemp;--判断触发器类型------------------------------------------------------------每进行一次交易,就要调用触发器,自动扣除或增加账户金额----------------------------------------------------------createtableaccount(customerNamevarchar2(30)primarykey,cardIDvarchar2(8),currentMoneynumber);insertintoaccountvalues(’Daivd’,’10010001’,5000);insertintoaccountvalues(’Jason’,’10010002’,3000);createtabletrans(transDatedate,cardIDvarchar2(8),transTypevarchar2(10),transMoneynumber);insertintotransvalues(sysdate,’10010001’,’取款’,1000);createorreplacetriggertrans_triggerbeforeinsertontransforeachrowdeclarev_currentMoneyaccount.currentMoney%type;begin--判断类型if:new.transType=’取款’then--取款selectcurrentMoneyintov_currentMoneyfromaccountwherecardID=:new.cardID;ifv_currentMoney《:new.transMoneythenraise_application_error(-20001,’余额不足’);endif;updateaccountsetcurrentMoney=currentMoney-:new.transMoneywherecardID=:new.cardID;else--存款updateaccountsetcurrentMoney=currentMoney+:new.transMoneywherecardID=:new.cardID;endif;exceptionwhenno_data_foundthenraise_application_error(-20002,’无效的帐户’);end;--模式(schema)级触发器createorreplacetriggerschema_triggerbeforedroponschemabegindbms_output.put_line(’schema_triggercalled’);dbms_output.put_line(ora_dict_obj_name);dbms_output.put_line(ora_dict_obj_type);ifora_dict_obj_name=’ACCOUNT’thenraise_application_error(-20003,’ACCOUNT表不能被删除’);endif;end;droptableaccount;--ora_dict_obj_name操作对象名称--ora_dict_obj_type操作对象类型--启用触发器altertriggerschema_triggerenable;--禁用触发器altertriggerschema_triggerdisable;

ORACLE触发器怎么写

Create Or Replace Trigger tr_tablenameBefore Insert Or Update Of leader_adviceOn tablenameFor Each RowBegin If :New.leader_advice Is Not Null Then :New.doucument_status:=’已审批’; Else :New.doucument_status:=’未审批’; End If;End;

请教,oracle 触发器,怎么写

首先,触发器的触发是需要条件的,楼主的条件就是在b表中插入数据之后,触发触发器,并updatea表中day为b表中dayday,楼主可以这样写:CREATEORREPLACETRIGGERupdate_aAFTERINSERTONbFOREACHROWDECLAREV_NOa.no%type;V_DAYa.day%type;BEGINSELECTno,daydayINTOv_no,v_dayFROMb;UPDATEaSETDAY=V_DAY;WHERENO=V_NO;END;

求一个简单的oracle 触发器 写法

创建两个表:

create table a(stdid int,stdname varchar2(10));create table b(stdid int,stdname varchar2(10));

创建触发器:

CREATE OR REPLACE TRIGGER tr_insert    after insert   ON a   FOR EACH ROW BEGIN   INSERT INTO b(stdid,stdname)       VALUES(:new.stdid,:new.stdname);END;

验证,在a表中插入数据:

insert into a values (1,’a’);commit;

验证b表结果:

oracle触发器怎么写(Oracle的触发器怎么写)

本文编辑:admin

更多文章:


宋思明海藻什么电视剧(《蜗居》海藻下场凄惨,哪些细节表明宋思明是真的爱上她了)

宋思明海藻什么电视剧(《蜗居》海藻下场凄惨,哪些细节表明宋思明是真的爱上她了)

本文目录《蜗居》海藻下场凄惨,哪些细节表明宋思明是真的爱上她了《蜗居》中,宋思明知道海藻已经摘除子宫,为什么还要松开方向盘电视剧《蜗居》里宋思明说自己拿了海藻第一次,海藻明知真相,为何不解释电视剧《蜗居》中,海藻和宋思明之间有真正的爱情吗《

2025年2月23日 10:10

decoration的形容词(七年级英语词形的变化)

decoration的形容词(七年级英语词形的变化)

本文目录七年级英语词形的变化英语语法中有没有双形容词七年级英语词形的变化1.work—worker 2.vent—inventor(人)--invention(物) 3. use—useful-used 4.teach—teacher 5.

2025年4月5日 11:10

wireshark下载官网(wireshark win64软件怎么用)

wireshark下载官网(wireshark win64软件怎么用)

本文目录wireshark win64软件怎么用高分:Wireshark使用教程wireshark win64软件怎么用什么是wiresharkWireshark 是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提

2025年3月12日 07:30

automaticupdates(无法启动Automatic Updates)

automaticupdates(无法启动Automatic Updates)

本文目录无法启动Automatic UpdatesAutomatic Updates服务怎么禁用.无法启动Automatic Updates服务automatic updates 启动失败 提示“本地计算机无法启动autom

2025年3月23日 17:30

视频剪辑教学视频(手机怎样视频剪辑自学)

视频剪辑教学视频(手机怎样视频剪辑自学)

本文目录手机怎样视频剪辑自学如何学习视频剪辑怎么自学视频剪辑呀哪里有完整的免费的影视剪辑视频教程抖音短视频怎么剪辑,自学还是报班学习好怎么剪辑电视剧短视频教程如何快速剪辑制作一个短视频该如何学习短视频的剪辑手机怎样视频剪辑自学自学短时间内很

2025年3月3日 22:20

check into(辨析look into/check into)

check into(辨析look into/check into)

本文目录辨析look into/check intocheck+into+a+hotel是什么意思check out是什么意思check是什么意思辨析look into/check intolook into这是固定搭配,调查、过问的意思。

2025年4月1日 19:40

动态css教程(如何动态加载外部CSS与JS文件)

动态css教程(如何动态加载外部CSS与JS文件)

本文目录如何动态加载外部CSS与JS文件如何动态改变css的内容asp.net怎么实现动态添加css样式CSS 动态样式怎么实现如何用css实现网页的动态效果如何用纯css制作动态网页效果如何动态设置CSS样式CSS动态文本怎么做如何动态加

2025年3月5日 03:20

asp是什么软件工具(ASP是什么工具软件,难学吗)

asp是什么软件工具(ASP是什么工具软件,难学吗)

本文目录ASP是什么工具软件,难学吗请问asp高手,asp到底是什么ASP是什么工具软件,难学吗asp是一种技术。 asp以vbscript为默认的角本语言,但是我们可以使用(有些需要额外添加)jscript、perl。。。等等相当丰富的其

2025年4月5日 10:00

ranger是什么车(福特Ranger Wildtrak这款车怎么样)

ranger是什么车(福特Ranger Wildtrak这款车怎么样)

本文目录福特Ranger Wildtrak这款车怎么样和同类型车相比,福特Ranger是怎样的水平福特Ranger Wildtrak这款车怎么样对于皮卡这款车型,随着政策的解禁开始受到越来越的关注,不少人已经打算购买一辆皮卡,但是他们依然在

2025年3月8日 06:50

springmvc执行流程及原理(写出MVC的工作原理)

springmvc执行流程及原理(写出MVC的工作原理)

本文目录写出MVC的工作原理springMVC的原理及作用写出MVC的工作原理1.当用户在浏览器中点击一个链接或者提交一个表单时,那么就会产生一个请求(request)。当请求离开浏览器时,它会携带用户请求的信息。2.请求的第一站到达的是S

2025年3月27日 10:30

血色浪漫宁伟(电视剧《血色浪漫》中宁伟是什么时候认识钟跃民的)

血色浪漫宁伟(电视剧《血色浪漫》中宁伟是什么时候认识钟跃民的)

本文目录电视剧《血色浪漫》中宁伟是什么时候认识钟跃民的他是《血色浪漫》宁伟,出道26年,演技扎实就是不红,他是谁《血色浪漫》大结局是什么血色浪漫中宁伟的扮演者是谁电视剧《血色浪漫》中宁伟是什么时候认识钟跃民的两个人小时候就认识。《血色浪漫》

2025年2月13日 05:30

adobeflash手机版下载(去哪里找手机最新版本的Adobe flash player)

adobeflash手机版下载(去哪里找手机最新版本的Adobe flash player)

本文目录去哪里找手机最新版本的Adobe flash playeradobe flash player 的手机版在那里下载安卓手机怎么下载flash手机版本的adobe flash player应该怎样下载去哪里找手机最新版本的Adobe

2025年3月7日 17:20

getattribute方法(想请问各位servlet是如何接收前端的数据的)

getattribute方法(想请问各位servlet是如何接收前端的数据的)

本文目录想请问各位servlet是如何接收前端的数据的java 方法中如何在返回类型使用泛型getAttribute方法返回的对象是什么类型的想请问各位servlet是如何接收前端的数据的Java web中的请求都是封装在request中的

2025年2月23日 05:40

找对象的社交软件哪些可靠(找对象的社交软件哪些可靠)

找对象的社交软件哪些可靠(找对象的社交软件哪些可靠)

本文目录找对象的社交软件哪些可靠靠谱的婚恋app哪款比较实用哪些社交软件比较可靠找对象的社交软件哪些可靠摘要您好,我觉得soul、探探、陌陌这类的社交软件比较可靠咨询记录 · 回答于2021-09-26找对象的社交软件哪些可靠您好,我觉得s

2025年3月2日 11:50

穿梭时空的侠客txt下载(如果你能穿越到古代,你想成为什么样的人)

穿梭时空的侠客txt下载(如果你能穿越到古代,你想成为什么样的人)

本文目录如果你能穿越到古代,你想成为什么样的人如果这世界上有时光机,你想要穿越到哪年,或者是回到哪年为什么如果你能穿越到古代,你想成为什么样的人谢邀!如果能穿越到古代,我想带着土豆和红薯的种粮、以及现代科技穿越成宋徽宗。宋徽宗时期,大宋已经

2025年3月20日 07:10

powerdesigner官网地址(求PowerDesigner9.5下载地址)

powerdesigner官网地址(求PowerDesigner9.5下载地址)

本文目录求PowerDesigner9.5下载地址PD数据库全称是什么下载地址怎么用powerdesigner求PowerDesigner9.5下载地址 ftp://61.177.182.98/ 软件下载/SYBASE/PB/powerd

2025年2月10日 08:30

everybody knows i love you(everybody know i love you这首歌的歌词)

everybody knows i love you(everybody know i love you这首歌的歌词)

本文目录everybody know i love you这首歌的歌词谁有everybody knows i love you这首歌、跪求,不要现场版的谁有Everybody Knows I Love You中英对照歌词every body

2025年3月26日 07:50

骨骼动画原理(努力真的可以学会MAYA影视动画吗)

骨骼动画原理(努力真的可以学会MAYA影视动画吗)

本文目录努力真的可以学会MAYA影视动画吗序列帧,骨骼动画和粒子,用来做游戏特效有哪些区别呢努力真的可以学会MAYA影视动画吗MAYA是美国Autodesk公司出品的世界顶级三维动画软件。主要应用在影视动画,次时代游戏,工业模型,产品设计,

2025年2月17日 09:40

originator(origrnal汉语是什么意思)

originator(origrnal汉语是什么意思)

本文目录origrnal汉语是什么意思originator holds指的是什么origrnal汉语是什么意思originaladj.1.(只用于名词前)原来的;起初的;最早的2. 原创性的;新的;独创的;新颖的3. 有独到见解的;有独创性

2025年2月17日 07:10

excel四舍五入取整数(excel求和怎么四舍五入取整)

excel四舍五入取整数(excel求和怎么四舍五入取整)

本文目录excel求和怎么四舍五入取整excel数字四舍五入取整怎么弄excel求和怎么四舍五入取整方法1:输入数据自动取整1首先用鼠标左键双击桌面上的Excel软件图标,打开Excel2首先选中需要输入数值的所有单元格。鼠标左键单击第一个

2025年4月4日 14:10

近期文章

本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:20
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:7
标签列表

热门搜索