INSERT INTO TBL_NUMBER_DUMMY
( NAME, NO_OF_PEOPLE)
VALUES
( :old.NAME, decode(:old.NO_OF_PEOPLE, -1, 0, :old.NO_OF_PEOPLE)
END;
Или, если вы хотите вставить в TBL_NUMBER _DUMMY, только если NO_OF_PEOPLE = -1,
CASE WHEN :old.NO_OF_PEOPLE = -1 THEN
INSERT INTO TBL_NUMBER _DUMMY
( NAME, NO_OF_PEOPLE)
VALUES
( :old.NAME, :old.NO_OF_PEOPLE)
ELSE null;
END;
ОБНОВЛЕНИЕ (ответ на комментарий):
INSERT INTO TBL_NUMBER_DUMMY
( NAME, NO_OF_PEOPLE)
VALUES
( :old.NAME, case when :old.NO_OF_PEOPLE < 0 then 0; else :old.NO_OF_PEOPLE; end)
END;
или,с декодированием
INSERT INTO TBL_NUMBER_DUMMY
( NAME, NO_OF_PEOPLE)
VALUES
( :old.NAME, decode(sign(:old.NO_OF_PEOPLE), -1, 0, :old.NO_OF_PEOPLE)
END;
:)
И да, вы можете вставить ноль в числовой столбец, за исключением ситуации, когда столбец имеет значение NOT NULL.ограничение.