@ankit からの回答は、この問題を修正するために必要なものと非常に一致していますが、この回答で修正しているいくつかの問題とタイプミスが示されています。お役に立てば幸いです。
まず、 old_seqの現在の値を選択する必要があります。
SELECT old_seq.CURRVAL FROM dual;
ORA-08002エラーが発生した場合は、シーケンスを初期化するために最初に NEXTVAL を要求する必要があるためです。ただ行う:
SELECT old_seq.NEXTVAL FROM dual;
CURRVAL を再度要求します。
現在の値を取得したので、次を使用して古いシーケンスを削除します
DROP SEQUENCE old_seq;
を使用して、必要な名前で new_seq を作成します
CREATE SEQUENCE new_seq START WITH <CURRVAL FROM old_seq>;
INCREMENT
の代わりにを使用する場合START WITH
は、シーケンスから値を求めるすべてのリクエストにインクリメントが適用されることを考慮する必要があります。シーケンスを作成してから、インクリメントを 1 にリセットする必要があります。使用するとSTART WITH
、その問題が回避されます。