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

Я пропустил что-то очевидное здесь


person AJM    schedule 26.10.2009    source источник


Ответы (1)


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

EXECUTE IMMEDIATE 'ALTER SEQUENCE NEXT_VALIDATED_TABLE_ID INCREMENT BY ' || MAX_TABLE_ID-NEXT_TABLE_ID;
person Hobo    schedule 26.10.2009