Oracle PL/SQL触发器,用于格式化有编译错误的信息
这是我的第一个问题,我是新来的,所以我希望我问的是正确的话题。。。等 我尝试使用一个触发器,它从一个表中捕获信息,比较该表中的一些数据,如果条件为真,则触发器必须存储更改某些值的信息。这是我的桌子和扳机。我需要这个触发器来存储包含很多列和更多信息的较大表,但这只是一个测试,请帮助!:'( 这是扳机,我打了,但它错了Oracle PL/SQL触发器,用于格式化有编译错误的信息,oracle,plsql,triggers,oracle11g,Oracle,Plsql,Triggers,Oracle11g,这是我的第一个问题,我是新来的,所以我希望我问的是正确的话题。。。等 我尝试使用一个触发器,它从一个表中捕获信息,比较该表中的一些数据,如果条件为真,则触发器必须存储更改某些值的信息。这是我的桌子和扳机。我需要这个触发器来存储包含很多列和更多信息的较大表,但这只是一个测试,请帮助!:'( 这是扳机,我打了,但它错了 create or replace trigger tgr_trigger_prueba after insert on datos_prueba for each
create or replace trigger tgr_trigger_prueba
after insert on datos_prueba
for each row
declare
cambio_numero number;
begin
if :datos_prueba.numero <= 5 then
insert into store_datos_prueba (nombre,numero,mensaje,fecha) values(:datos_prueba.nombre,666,:datos_prueba.mensaje,:datos_prueba.fecha);
else
insert into store_datos_prueba (nombre,numero,mensaje,fecha) values(:datos_prueba.nombre,777,:datos_prueba.mensaje,:datos_prueba.fecha);
end if;
end;
创建或替换触发器tgr\u trigger\u prueba
在datos_prueba上插入后
每行
声明
坎比奥数字;
开始
如果:datos_prueba.numero您必须使用old
或new
来引用行值,而不是表名
create or replace trigger tgr_trigger_prueba
after insert on datos_prueba
for each row
declare
cambio_numero number;
begin
if :new.numero <= 5 then
insert into store_datos_prueba (nombre,numero,mensaje,fecha) values(:new.nombre,666,:new.mensaje,:new.fecha);
else
insert into store_datos_prueba (nombre,numero,mensaje,fecha) values(:new.nombre,777,:new.mensaje,:new.fecha);
end if;
end;
/
创建或替换触发器tgr\u trigger\u prueba
在datos_prueba上插入后
每行
声明
坎比奥数字;
开始
if:new.numero:old
将为插入返回空值。我想你的意思是:new
@maheswaran revisankar cool man!非常感谢,它可以完美地工作:)
create or replace trigger tgr_trigger_prueba
after insert on datos_prueba
for each row
declare
cambio_numero number;
begin
if :new.numero <= 5 then
insert into store_datos_prueba (nombre,numero,mensaje,fecha) values(:new.nombre,666,:new.mensaje,:new.fecha);
else
insert into store_datos_prueba (nombre,numero,mensaje,fecha) values(:new.nombre,777,:new.mensaje,:new.fecha);
end if;
end;
/