Изменение последовательности Oracle с использованием результата выражения
Вопрос
У меня есть две переменные
MAX_TABLE_ID INTEGER;
NEXT_TABLE_ID INTEGER;
Я читаю значения в них, а затем пытаюсь изменить последовательность на их основе
EXECUTE IMMEDIATE 'ALTER SEQUENCE NEXT_VALIDATED_TABLE_ID INCREMENT BY [MAX_TABLE_ID-NEXT_TABLE_ID]';
Бит Я получаю " неверный номер " ошибка или команда SQL не завершилась ошибка.
Это даже произойдет, если я попробую жестко закодированные числа
ALTER SEQUENCE NEXT_VALIDATED_TABLE_ID INCREMENT BY 100-1; or
ALTER SEQUENCE NEXT_VALIDATED_TABLE_ID INCREMENT BY [100-1];
Я что-то упускаю здесь очевидное
Решение
Я бы попробовал выполнить вычисления вне литерала, например
EXECUTE IMMEDIATE 'ALTER SEQUENCE NEXT_VALIDATED_TABLE_ID INCREMENT BY ' || MAX_TABLE_ID-NEXT_TABLE_ID;
Не связан с StackOverflow