有没有人理我啊!!!!!!
对了,我可以这样写么?
create or replace trigger XP_MU_tri
after UPDATE on MUTUAL_OPERTION
for each row
declarebeginif :new.STATE=1 and :new.SENDSTATE =0 then beginXP_MUTUAL(:new.SENDMSG,:new.SPNUMBER,:new.INFORMCLIENT);
update tb_fz set SENDSTATE=1,Time = sysdate where ;
end;
end if;end;
这样可以不可以,如果有更改的我都认为是.:new的变量。
对了,我可以这样写么?
create or replace trigger XP_MU_tri
after UPDATE on MUTUAL_OPERTION
for each row
declarebeginif :new.STATE=1 and :new.SENDSTATE =0 then beginXP_MUTUAL(:new.SENDMSG,:new.SPNUMBER,:new.INFORMCLIENT);
update tb_fz set SENDSTATE=1,Time = sysdate where ;
end;
end if;end;
这样可以不可以,如果有更改的我都认为是.:new的变量。
解决方案 »
- 讨论SQL语句联合查询的效率问题
- 搞不定的问题~希望大虾帮助
- 如何手动配置Oracle 10g的DBConsole服务?请各位大虾指点
- 急!高手请进!有几个关于EJB和数据库的问题!
- 如何对嵌套表生成视图,使其成为一个二维的包含表所有信息的视图!???
- 关于ORACLE数据库移植问题
- 我用sqlplus创建触发器总是提示:警告: 创建的触发器带有编译错误。请各位指教
- 求一条SQL语句
- 分区表怎么查询比不分区还要慢?
- oci.dll问题
- 求修改已存在表的表名和修改该表索引名称的SQL语句,以及修改之前需要注意的事项
- 晕了!我用的是oracle9201NT,无论如何建立不了management server!帮帮忙吧!
因为会重复调用此trigger, 不知是不是叫回调。
反正不能这样写。
看看对你存储过程的调用是否有影响,如果没有的话,可以这样实现的
就是:new.SENDSTATE =1
这样就可以把当前行修改了,不知是否符合你的要求?
create or replace trigger XP_MU_tri
after insert on 表1for each row
declare
变量1 int;
begin
select STATE into 变量1 from 表2 where 表2中ID=(select 表1中ID from 1where :new.被插入的字段=1);
if :new.被更改的字段=1 and 变量1=0 then beginXP_MUTUAL(:new.SENDMSG,:new.SPNUMBER,:new.INFORMCLIENT);
update 表2 set STATE=1 where MUTUALID=(select ID from 表1where :new.被插入字段=1);
end;
end if;
如果是此表被修改过的话
create or replace trigger XP_MU_tr
after UPDATE on MUTUAL_OPERTION
for each row
declare
v_SENDSTATE int;
v_SENDMSG varchar(100);
v_SPNUMBER varchar(30);
v_INFORMCLIENT varchar(100);
begin
select STATE into v_SENDSTATE from 表2 where MUTUALID=(select ID from表1where :new.被修改做的字段=1);
if :new.STATE=1 and v_SENDSTATE =0 then begin
---下面这句话是想找到被修改做的字段的那一行里其他字段的值
select :old.SENDMSG,:old.SPNUMBER,:old.INFORMCLIENT into v_SENDMSG,v_SPNUMBER,v_INFORMCLIENT from MUTUAL_OPERTION where :new.STATE=1;
--调用存储过程
XP_MUTUAL(v_SENDMSG,v_SPNUMBER,v_INFORMCLIENT);
update MUTUAL_STATE set STATE=1 where MUTUALID=(select ID from MUTUAL_OPERTION where :new.STATE=1);
end;
end if;end;end;