【问题标题】:ORA-01422: exact fetch returns more than requested number of rows ORA-06512: at "SYSTEM.AA"ORA-01422:精确提取返回的行数超过了请求的行数 ORA-06512:在“SYSTEM.AA”
【发布时间】:2017-02-11 03:29:38
【问题描述】:

我是 PL/SQL 的新手 我试图将删除的记录保存到临时表中。为此,我按如下方式触发:

create or replace trigger aa
before delete on master_table
declare
v_id number(2);
begin
select id into v_id from master_table;
insert into temp_table values(v_id);
end;
/

但是当我尝试从 master_table 中删除记录时,会抛出这些异常:

ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at "SYSTEM.AA", line 4
ORA-04088: error during execution of trigger 'SYSTEM.AA'

提前谢谢你。

【问题讨论】:

    标签: oracle plsql


    【解决方案1】:

    您可以为每一行创建要执行的触发器,只需使用:old.id 将值插入到临时表中。

    create or replace trigger aa
    before delete on master_table
    for each row
    begin
        insert into temp_table values(:old.id);
    end;
    /
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 2015-09-24
      • 1970-01-01
      • 2021-06-14
      相关资源
      最近更新 更多