2009-10-26 2 views
1

У меня есть две переменныхизменяющего 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]'; 

Bit я получаю ошибка «неправильного номера» или ошибка SQL, не закончившаяся ошибкой.

Это происходит даже если я пытаюсь жестко закодированные номера

ALTER SEQUENCE NEXT_VALIDATED_TABLE_ID INCREMENT BY 100-1; or 

ALTER SEQUENCE NEXT_VALIDATED_TABLE_ID INCREMENT BY [100-1]; 

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

ответ

3

Я стараюсь делать расчет за пределы буквального, например

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

Хорошая мысль, это сработало. – AJM

Смежные вопросы