Или в более общем плане: убедитесь, что ваши предложения FROM и WHERE приводят только к одной найденной строке - тогда NEXTVAL будет выполнен только один раз.
Кроме того, вы всегда можете получить только одно выполнение NEXTVAL, вызвав егоизначально в PL / SQL, например:
DECLARE
l_seq INTEGER;
BEGIN
l_seq := my_sequence.NEXTVAL;
END;