我有一个序列叫做SEQ_SYNTAX。我需要通过从另一个名为INCREMENTS的表中查找一个值来设置这个序列的last_number值。我可以通过执行SELECT LASTVAL FROM INCREMENTS WHERE TABLE = 'SYNTAX'从增量表中获取值;
如何编写一个简单的SQL脚本来设置序列值?比如说,如果lastval from increments table where table = 'SYNTAX'是3000,我想把序列SEQ_SYNTAX的last_number设置为3000。
谢谢
1条答案
按热度按时间xqnpmsa81#
从12 c开始,您可以简单地重置起始值。以编程方式执行它将需要PL/SQL,因此我们必须使用
EXECUTE IMMEDIATE
,因为ALTER SEQUENCE
是一个SQL:如果你是12 c之前的版本,如果新值低于当前值,你将不得不删除并重新创建序列,或者如果新值更大,则使用脚本进行dummy-advance直到它达到新值。这是一个麻烦,所以我们感谢12摄氏度的增强。