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