Изменение последовательности Oracle с использованием результата выражения

StackOverflow https://stackoverflow.com/questions/1624388

Вопрос

У меня есть две переменные

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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top