Изменение последовательности Oracle с использованием результата выражения - PullRequest
1 голос
/ 26 октября 2009

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

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 Ответ

3 голосов
/ 26 октября 2009

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

EXECUTE IMMEDIATE 'ALTER SEQUENCE NEXT_VALIDATED_TABLE_ID INCREMENT BY ' || MAX_TABLE_ID-NEXT_TABLE_ID;
...