Это идеальное место, чтобы использовать NVL2, чтобы сделать код немного чище:
CREATE OR REPLACE TRIGGER "A"."TRGMAJNRFIC"
AFTER INSERT ON "A"."GEDFILES"
FOR EACH ROW
DECLARE
wtmpnrfic number;
BEGIN
SELECT MAX(OBJNRFICHIERS)
INTO wtmpnrfic
from GEDDirs
WHERE ID = :new.ID;
UPDATE GEDDirs
SET OBJNRFICHIERS = NVL2(wtmpnrfic, 0, wtmpnrfic+1);
WHERE ID = :new.ID;
END IF;
END;
Или, если хотите, вы можете использовать COALESCE для замены строки NVL2 выше:
SET OBJNRFICHIERS = COALESCE(wtmpnrfic+1, 0);
Или, я полагаю, NVL будет работать так же хорошо:
SET OBJNRFICHIERS = NVL(wtmpnrfic+1, 0);
Делись и наслаждайся.