使用表达式结果更改Oracle序列

时间:2009-10-26 11:57:03

标签: sql oracle plsql oracle9i ora-01722

我有两个变量

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 个答案:

答案 0 :(得分:3)

我会尝试在文字之外进行计算,例如

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