Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle PL/SQL触发器,用于格式化有编译错误的信息_Oracle_Plsql_Triggers_Oracle11g - Fatal编程技术网

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;
    /