Изменение последовательности 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];

Я что-то упускаю здесь очевидное

1 ответ

Решение

Я бы попробовал сделать расчет вне литерала, например

EXECUTE IMMEDIATE 'ALTER SEQUENCE NEXT_VALIDATED_TABLE_ID INCREMENT BY ' || MAX_TABLE_ID-NEXT_TABLE_ID;
Другие вопросы по тегам