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)专题

Oracle Database 12.2新特性详解

Oracle PLSQL 客户端 连接Oracle12.2 出现权限问题的解决办法以及绿色版Oracle客户端的使用.

Oracle12.2中新增的分区功能

Oracle 12.2新特性----在线move表

Oracle 12.2 数据库中 CLOB 的 JDBC 流给出错误的编码