Oracle 12.2 - NOPARTITION 特性的替换
Posted
技术标签:
【中文标题】Oracle 12.2 - NOPARTITION 特性的替换【英文标题】:Oracle 12.2 - Replacement of NOPARTITION feature 【发布时间】:2019-03-14 20:24:08 【问题描述】:我有 Oracle 版本 12.2.0.1.0
我们有通用脚本,可以创建需要为不同对象重用的序列(通过重命名序列名称):
CREATE SEQUENCE NAME_SEQ MINVALUE 1 MAXVALUE 999999999
INCREMENT BY 1 START WITH 100 CACHE 200 NOORDER NOCYCLE NOPARTITION ;
在我删除 NOPARTITION
之前,此脚本无法处理以下错误:
ORA-00933: SQL command not properly ended
我在 AskTom 中发现 NOPARTITION is not supported in 12.2
以前版本的数据库中有很多东西不再相关/不支持
为什么它不受支持和/或该功能的替代品是什么?
如果没有替代品,您能否说明为什么不应该使用此功能?
【问题讨论】:
实际的问题是:为什么你认为你需要它?尤其是考虑到nopartition
甚至没有记录在以前的版本中。
@a_horse_with_no_name 我有一个“旧版”脚本,如果我删除NOPARTITION
,我想确保不会遗漏任何重要内容
这就是使用未记录功能时的风险...
【参考方案1】:
序列的(无)分区选项从未记录在案。因此从不支持。
12.1 中有一个错误,它通过 dbms_metadata 暴露了这一点。它不再发生在 12.2 中
未记录的功能可以(并且证明)在没有警告的情况下发生更改。使用它们完全由您自己承担风险。
【讨论】:
【参考方案2】:如果您从数据库版本 12.1 执行 dbms_metadata.get_ddl 并希望在 12.2 中使用它,则提供 NOPARTITION。现在我们必须删除它。
【讨论】:
以上是关于Oracle 12.2 - NOPARTITION 特性的替换的主要内容,如果未能解决你的问题,请参考以下文章
Linux系统Oracle 12cR2 RAC集群安装与维护管理(12.2)专题