Создание последовательности с опцией NOPARTITION, ошибка: ORA-00933: SQL command not properly ended
Установлена версия 12.2.0.1.0.
Есть скрипт, который создает последовательность, которую нужно повторно использовать для различных объектов (переименовывая имя последовательности):
CREATE SEQUENCE NAME_SEQ MINVALUE 1 MAXVALUE 999999999
INCREMENT BY 1 START WITH 100 CACHE 200 NOORDER NOCYCLE NOPARTITION;
Этот скрипт не работает, выдаёт ошибку:
ORA-00933: SQL command not properly ended
Но если удалить NOPARTITION, то всё работает.
В топике на AskTom говорится, что NOPARTITION не поддерживается в 12.2
there's been various of things in previous versions of the database that are no longer relevant/supported в предыдущих версиях были различные функции, которые больше не актуальны/не поддерживаются.
Почему эта функция не поддерживается и/или чем она заменена?
Если замены нет, то почему эта функция не должна использоваться?
Свободный перевод вопроса Oracle 12.2 - Replacement of NOPARTITION feature от участника @user7294900
Ответы (1 шт):
Опция (NO)PARTITION n для последовательностей была введена 12.1 но никогда не была документирована, поэтому никогда не поддерживалась. В указанной в вопросе статье на AskTom, есть ссылка, по которой можно узнать подробней об этой опции.
Также в версии 12.1, пакет DBMS_METADATA генерировал скрипты для создания таблиц, где ошибочно была указана опция NOPARTITION для последовательностей. В 12.2 эта ошибка была устранена.
Во всех скриптах, созданных в версии 12.1 пакетом DBMS_METADATA, опция NOPARTITION должна быть удалена.
Когда появится эта опция, если вообще появится, нет официальной иформации. В документации к актуальной версии 21c она отсутствует.
Если замены нет, то почему эта функция не должна использоваться?
Все недокументированные возможности, функции, опции и т.д., могут изменяться без предупреждения, и как раз этот случай - няглядный пример. Их использование строго на свой страх и риск. В этом случае, изготовитель не несёт никакой ответственности.