oracle触发器报错语法,oracle触发器

oracle触发器报错语法,oracle触发器oracle触发器系统默认用户浏览4438oracle触发器怎么写?通过编写数据库触发器,在HR数据库上实现下面的业务规则:1.如果某工种的最低工资进行上涨,则相应的员工的工资应自动增长…通过编写数据库触发器,在HR数据库上实现下面的业务规则:1.如果某工种的最低工资进行上涨,则相应的员工的工资应自动增长推荐于2019-06-0421:52:46创建触发器,给触发器命名,在哪个表上的增删改…

大家好,又见面了,我是你们的朋友全栈君。

oracle触发器

b23d28d994245b6b314b144bdf6ae12f.png

系统默认用户

浏览 4438

oracle触发器怎么写?

通过编写数据库触发器,在HR数据库上实现下面的业务规则:1.如果某工种的最低工资进行上涨,则相应的员工的工资应自动增长…

通过编写数据库触发器,在HR数据库上实现下面的业务规则:

1.如果某工种的最低工资进行上涨,则相应的员工的工资应自动增长

推荐于2019-06-04 21:52:46

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

编写你的逻辑

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

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

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

26905人赞同了该观点

909ec6d30222b2f45933291a092d354c.png

系统默认用户

浏览 1933

ORACLE更新触发器的写法

我想写一个触发器,当BILL表中的status字段为50时,使得ACCOUNT字段更新为Y,请指导,谢谢!status字段的值是由其它值更新为50的…

我想写一个触发器,当BILL表中的status字段为50时,使得ACCOUNT字段更新为Y,请指导,谢谢!

status字段的值是由其它值更新为50的

推荐于2019-06-04 21:52:46

创建测试表:create table bill

(id int,

status int,

aacount varchar2(1));

一条测试数据:insert into bill values (1,49,’N’);

commit;

创建触发器:create or replace trigger t_update_bill

before insert or update on bill

for each row

begin

if :new.status=50

then :new.aacount:=’Y’;

end if;

end;

测试1:

将id=1那条数据的status改成50,然后检查结果(请自行测试,我这边验证无误了):update bill set status=50 where id=1;

commit;

测试2:

插入一条id=2,status为50,account为N的数据(请自行测试,我这边验证无误了):insert into bill values (2,50,’N’);

commit;

30014人赞同了该观点

2ae6a8909489ab756bf3adb94d9cbf79.png

系统默认用户

浏览 6660

Oracle数据库触发器问题

有Oracle数据库有两个一样表结构的表A,B,现在想写触发器实现当把多条数据同时导入表A时先清空原来表A里面的所有数据,并把新导入的数据同步到表B中去。现在我的触发器是这样写的crea…

有Oracle数据库有两个一样表结构的表A,B,现在想写触发器实现当把多条数据同时导入表A时先清空原来表A里面的所有数据,并把新导入的数据同步到表B中去。

现在我的触发器是这样写的

create or replace trigger A_trigger

before insert on A for each row

begin

insert into

B(id,num,name)VALUES(:new.id,:new.num,:new.name);

delete from A;

end ;

得出的结果是能把数据成功同步到B表中去,但是A表中只有导入的多数据中最后面的一条数据,这个要怎么改进才行?求教各位大神!谢谢

现在主要的问题是A导入多条数据时只剩下最后一条数据,这不是我想要的结果,我想要的是导入多条数据时表A里面的数据删除,新导入的全部保留。

展开

推荐于2019-06-04 21:52:46

你怎么界定哪些是新导入的呢?因为你说每次导入都把旧数据删除,你这次导入数据之后,对于下一次导入,你上一次的就是旧数据,所以应该删除也是没错的。

然后你这样写因为你的delete from a;是写在触发器里面,每导入一次 都会触发一次,所以A表每次都只会保留一条数据。

我有个建议就是把每天最新一天的数据当做新数据,这样你在触发器删除的时候可以加个日期判断,如果是当天的数据 就不删除,delete from a where date<>’今天日期’

5193人赞同了该观点

ff1da576a75e219ec74e53e9a439f832.png

系统默认用户

浏览 2006

oracle触发器无效且未通过验证

BEGINtmpVar:=0;SELECTironout_seq.NEXTVALINTOtmpVarFROMdual;:NEW.Sequence_id:=tmpVar;EXCEPTIONWHENOTHERSTHEN–Considerloggingtheerrorandthenre-raiseRAISE;insertintoIRONOUT…

BEGIN

tmpVar := 0;

SELECT ironout_seq.NEXTVAL INTO tmpVar FROM dual;

:NEW.Sequence_id := tmpVar;

EXCEPTION

WHEN OTHERS THEN

— Consider logging the error and then re-raise

RAISE;

insert into IRONOUT@LADLETRACK61 (SEQUENCE_ID,TRAIN_ID,IRONOUT_STARTTIME,IRONOUT_ENDTIME,FLAGE,PORT,WEIGHT,CREATER,TAREWET,GROSSWET,JLCH,NETWET)

VALUES(:new.SEQUENCE_ID,:new.TRAIN_ID,:new.IRONOUT_STARTTIME,:new.IRONOUT_ENDTIME,:new.FLAGE,:new.PORT,:new.WEIGHT,:new.CREATER,:new.TAREWET,:new.GROSSWET,:new.JLCH,:new.NETWET);

END ;

展开

推荐于2019-06-04 21:52:46

31506人赞同了该观点

245139345d09fbc8ed50420492b0f6a5.png

系统默认用户

浏览 6094

关于oracle触发器,根据条件插入并赋值的问题

比如现有一张表A,里面有id,name,phone,type(type值会有1,2,3),applytype(值会有11,12)和result5个字段。然后我现在需要创建一个触发器实时将数据插入到B表(插入B表的字段除了pho…

比如现有一张表A,里面有id,name,phone,type(type值会有1,2,3), applytype(值会有11,12)和result5个字段。然后我现在需要创建一个触发器实时将数据插入到 B表(插入B表的字段除了phone以外的字段),只要A表有一行数据就同步到B表,并且A表不会手动修改数据,同步条件是type为2且applytypoe=11时,再插入B表,并且将B表的result字段值设定为”Y”。

本人对触发器小白,请大神尽量详细的解答,谢谢!

展开

推荐于2019-06-04 21:52:46

6620人赞同了该观点

4ff4b8aeeadfdd174d3408033743d113.png

系统默认用户

浏览 7598

arcgis有没有类似oracle触发器的工具

就是当我删除或者增加一个要素时,数据库自己会备份一个相同的要素在另一个要素集里…

就是当我删除或者增加一个要素时,数据库自己会备份一个相同的要素在另一个要素集里

推荐于2019-06-04 21:52:46

oracle中触发器有三种

1.DML触发器

ORACLE可以在DML语句进行触发,可以在DML操作前或操作后进行触发,并且可以对每个行或语句操作上进行触发。

2 .替代触发器

由于在ORACLE里,不能直接对由两个以上的表建立的视图进行操作。所以给出了替代触发器。它就是ORACLE 8专门为进行视图操作的一种处理方法。

3. 系统触发器

ORACLE 8i 提供了第三种类型的触发器叫系统触发器。它可以在ORACLE数据库系统的事件中进行触发,如ORACLE系统的启动与关闭等。

16939人赞同了该观点

343892f57bf1c04c8d7d2fd1a6dbff47.png

系统默认用户

浏览 18

oracle 触发器修改数据问题

createorreplacetriggermodify_gradebeforeupdateonscforeachrowbeginif:new.grade<:old.gradethenraise_application_error>

create or replace trigger modify_gradebefore update on scfor each rowbeginif :new.grade<:old.grade thenraise_application_error if>

展开

46d25d0544ea2d0f9aa65b5d0b6b7e13.png

推荐于2019-06-04 21:52:46

楼主你好:

每个触发器都会有自己的作用,而你上面触发器写的规则就是,当你对表scfor 中的grade列在更新(update)的时候,如果更新的值小于原先的值的时候,就会触发你自定义的异常错误代码信息。

所以,当你更新scfor.grade列值,对其进行赋值小的数值的时候,就会出现你上面的自定义错误信息报错,这也就是你这个触发器的作用。

24278人赞同了该观点

f3cbbcc075facb024a2fd03f81471dd5.png

系统默认用户

浏览 5456

Oracle 创建触发器报错 pls-00103

各位大神好,小女因工作需要学习oracle,今天在学到创建触发器时,一直报错,请各位大神帮忙看一下,怎么修改。万分感谢!!!这是我建的account表的代码:CREATETABLEaccount(acct_n…

各位大神好,小女因工作需要学习oracle,今天在学到创建触发器时,一直报错,请各位大神帮忙看一下,怎么修改。万分感谢!!!这是我建的account表的代码:CREATE TABLE account (acct_num NUMBER(6), amount NUMBER(10,2));这是我建的触发器的要求,:要求:创建一个名为INS_SUM的触发器,触发的条件是向数据表account插入数据之前,输出提示信息。触发器代码:CREATE OR REPLACE TRIGGER INS_SUMBEFORE INSERTON accountBEGINIF INSERT THENDBMS_OUTPUT.PUT_LINE(‘下面将开始插入数据’);END IF;END;执行触发器代码后,报错:错误:PLS-00103: 出现符号 “INSERT”在需要下列之一时: ( – + case mod new not null continue avg count current exists max min prior sql stddev sum variance execute forall merge time timestamp interval date pipe purge json_exis行:5文本:IF INSERT THEN请各位大神看一下,到底哪里错了,怎么修改。谢谢各位大神!!!

展开

dfd83be6357702d86ffd433930de3f58.png

推荐于2019-06-04 21:52:46

29276人赞同了该观点

d7e81a38ff1edd690d7adc05bd7adb7c.png

系统默认用户

浏览 5411

Oracle 触发器和存储过程需要单独备份吗?

推荐于2019-06-04 21:52:46

看你具体需求了。无论是触发器还是存储过程,都是数据库的一个对象,所以你可以备份在一起,也可以分开。都可以的。

20347人赞同了该观点

0ca48223b182dcdd166a35a3eb6ed907.png

系统默认用户

浏览 1040

oracle 怎么在执行查询语句的时候触发触发器?如果不能有办法实现相同的功能吗?

推荐于2019-06-04 21:52:46

查询的时候在程序里调用存储过程不是一样的么。

我们这里都已经禁止使用触发器、存储过程了,出了问题排查太困难,不知道是程序的问题还是DB那边的问题,找的头大。

所有逻辑放到程序那边。

16383人赞同了该观点

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157368.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号