以下のように表示されます。
(日本語)
ORA-02283: 開始順序番号は変更できません。
(英語)
ORA-02283: cannot alter starting sequence number
発生パターン
このエラーは以下のような場合に発生します。
- シーケンスの現在値を変更しようとした
- エラー例
- SQL> ALTER SEQUENCE seq01 START WITH 10; ALTER SEQUENCE seq01 START WITH 10; * 行1でエラーが発生しました。: ORA-02283: 開始順序番号は変更できません。
シーケンスはALTER SEQUENCEでシーケンス番号は変更できません。
対処法
- シーケンスのリセットを行う
→ [ORACLE] シーケンス番号をリセットする - シーケンスを作成し直す(DROP SEQUENCE → CREATE SEQUENCE)
- ALTER SEQUENCE ~ increment byINCREMENT BY句を使用して変更したい値にする
- 例)現在15のシーケンス(seq01)を20に変更する
- --シーケンスの増分を5にする(20 - 15 → 5) ALTER SEQUENCE seq01 INCREMENT BY 5; --シーケンスを1回発行する(これでシーケンスが20になる) SELECT seq01.NEXTVAL FROM DUAL; --シーケンスの増分を1に戻す ALTER SEQUENCE seq01 INCREMENT BY 1;
備考
- シーケンス番号のリセットには、ALTER SEQUENCE RESTART句が便利です。
(以下関連記事をご覧ください。)