oracle触发器循环遍历,救命啊,触发器中是否可以使用循环结构??

但是好像不是这个原因阿,你看看我的三个表格的数据吧。

第一个关系表:

SQL> select * from relation_dr;

FIRNODE    SECNODE       RATIODR

---------- ---------- ----------

HETIAN     P01                .6

HETIAN     P02                .3

HETIAN     P03                .1

AKESHU     P04                .5

AKESHU     P05                .3

AKESHU     P06               .05

AKESHU     P07               .15

NONGYISHI  P08               .25

NONGYISHI  P09               .35

NONGYISHI  P10               .15

NONGYISHI  P11               .25

FIRNODE    SECNODE       RATIODR

---------- ---------- ----------

KUELE      P12                 1

然后我插入以下语句时出错,好像只有HETIAN和AKESHU可以插入2条或以上数据,其他都不可以了,似乎这两个值已经注册了一样,不知道什么原因。

SQL> INSERT INTO RESULTR VALUES(2002,'HETIAN',500);

已创建 1 行。

SQL> INSERT INTO RESULTR VALUES(2002,'AKESHU',550);

已创建 1 行。

SQL> INSERT INTO RESULTR VALUES(2002,'NONGYISHI',400);

INSERT INTO RESULTR VALUES(2002,'NONGYISHI',400)

*

ERROR 位于第 1 行:

ORA-01403: 未找到数据

ORA-06512: 在"LRH.UPDATERESULTD", line 9

ORA-04088: 触发器 'LRH.UPDATERESULTD' 执行过程中出错

SQL> INSERT INTO RESULTR VALUES(2002,'KUELE',400);

已创建 1 行。

但是如果把RELATION_DR中NONGYISHI的条数改成1条,即删除3条数据。

如下语句:

SQL> delete from relation_dr where secnode IN ('P09','P10','P11');

已删除3行。

SQL> INSERT INTO RESULTR VALUES(2002,'NONGYISHI',400);

已创建 1 行。

即插入了数值。好像要加入其他的FIRNODE也是一样的,在RELATION_D不能超过一条数据,否则出错。不知道具体什么原因,大虾们救命啊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值