Как уже упоминалось, команда IF EXISTS не работает с командой DROP SEQUENCE.
Чтобы проверить наличие последовательности, необходимо проверить соответствующий вид:
USER_SEQUENCES
SELECT *
FROM USER_SEQUENCES
WHERE sequence_name = ?
DBA_SEQUENCES
SELECT *
FROM DBA_SEQUENCES
WHERE sequence_name = ?
ALL_SEQUENCES
SELECT *
FROM ALL_SEQUENCES
WHERE sequence_name = ?
Пример:
BEGIN
FOR i IN (SELECT sequence_name
FROM USER_SEQUENCES
WHERE sequence_name = ?)
LOOP
EXECUTE IMMEDIATE ('DROP SEQUENCE '|| i.sequence_name);
END LOOP;
END;