ORACLE / PLSQL:未找到数据

问题描述 投票:-1回答:1

所以在我开始之前,我想我明白为什么我会收到错误。这是因为我在触发前使用,如果没有home_id的值已经插入,它将不会显示任何内容。但问题是,我之前使用过相同的触发器并且工作正常。

所以这是我的触发器:

create or replace trigger trgpick 
    BEFORE insert or update on picking 
    for each row 
declare
    v_count number:=0;
BEGIN
    SELECT COUNT(*) INTO v_count 
    FROM home 
    WHERE home_ID=:NEW.home_ID;
    IF v_count>4 then
        :new.time:=9;
    ELSIF v_count<5then 
        :new.time:=3;
    END IF;
END;

因此,当我执行此触发器并在其中插入一个实际的Home_id值时,我收到以下错误:

ORA-01403: no data found
sql oracle plsql database-trigger
1个回答
0
投票

如果您在操作之前使用,则无法获得':NEW'值,那么您可能需要在操作触发后使用或使用:OLD限定符。

© www.soinside.com 2019 - 2024. All rights reserved.