查看原文
其他

Oracle Database 23c 十小新特性速览 | 从 Schema 权限到 4096 列支持

Editor's Note

据说 Oracle Database 23c 不出意外将于明年第一季度发布,23c 作为 19c 之后的又一个长周期支持版本,肯定会带来很多的新特性,你是否也很期待呢?下面一起来看看盖老师总结的 23c 小新特性速览。

The following article is from 数据和云 Author 盖国强

在最近刚刚举行的 DOAG 2022 会议上,Oracle 披露了 Oracle Database 23c 的一系列新特性。以下我将遴选 10 个有意思的特性,凑成一组速览和大家分享。


1. 不带 FROM 子句的 SELECT 查询

我们知道,在 MogDB 数据库中,SELECT 是可以不跟 FROM 子句实现一系列的查询功能,例如:

MogDB=#select 2^10;
?column?
----------
1024
(1 row)

MogDB=#select 9*9;
?column?
----------
81
(1 row)

在 Oracle 23c 中,第一次实现了不带 From子句的查询,因而原来大量依赖 Dual 表的查询,可以松下了一口气:

2. 单表支持 4096 列

我们知道 MogDB 单表最大支持 1600 列,Oracle 此前版本单表支持 1000 列。

在 23c 中,单表支持列数量扩展到 4096 列。启用这一个特性需要将兼容性参数设置为 23.0.0,同时将 Max_columns 设置为 Extended:

alter system set MAX_COLUMNS=EXTENDED;

3. SCHEMA 级别的权限

在 23c 之前的版本,如果针对 Schema 对其他用户进行授权,需要通过系统权限 或 对象权限 分别显示的授予,这对数据库带来了额外的安全风险 或 复杂性。

在 Oracle 23 中,可以对 Schema 进行授权,简化了之前的全线操作:

grant select any table on SCHMEA PROD to HR;

4. Boolean 数据类型

最终,在 Oracle Database 23c 中,布尔数据类型被支持:

5. 基于别名的 GROUP BY

终于,我们不再需要在 Group By 中重复长长的表达式,现在支持基于别名、位置的 GROUP BY,这大大简化了 SQL 文本和编写,毕竟 Group by 如此常用、无处不在:

6. Javascript 存储过程

在 Oracle 21c 中引入的 MLE 支持了数据库内部的 Javascript ,现在更进一步,23c实现 javascript 存储过程,让数据库内的处理能力进一步扩展和增强:

7. SQL Domains

SQL 域, 域是特定类型数据元素的通用定义,例如名称、邮政编码、国家代码。这个通用定义可以有几个属性——例如格式(检查约束)、默认值、默认显示格式和按基于域的值排序时要使用的表达式。

在 Oracle Database 23c 中,域可以定义为数据库对象,并且在定义列时,可以将其链接到域定义,形成一个潜在元数据组。通过新函数 DOMAIN_DISPLAY 和 DOMAIN_ORDER 可以在查询语句中使用显示格式和 order by 表达式。

8. DDL 的 IF EXISTS 判断

在 DD 中,支持通过 IF [NOT] EXISTS 判断,从而规避执行过程中的错误、异常和中断:

9. 注释

注释,为数据库对象增加元数据支持,可以针对表、视图、列、索引、PL/SQL 程序单元、物化视图、域增加注释。

10. 标准的表值构建

一次产生多行记录,是基于 ISO SQL 标准的实现:

就以上10个特性而言,哪个使你心有戚戚?欢迎留言反馈。

补充一些其他的特性:

11. 更新 JOIN 连接结果集


在 23c 中,支持更新 Join 连接的结果集,事实上,这个特性在以前版本是支持的,不过存在一些限制(还可以通过参数设置,去掉限制),现在应该是扩大支持。

12. 优化 Returning 子句


优化了 update、Merge 子句的返回值,支持 old 和 new 值的返回:

13. 优化错误信息的精准度



14. JSON Schmea 增强


根据 JSON Schema 定义验证文档的各种选项,使用包 dbms_json_schema 可以针对 JSON 检索特定值的验证报告。

15. 开发者角色


系统内建开发者角色,并授予了一系列的权限,以方便开发者进行SQL诊断等,缺省授予的视图权限包括:

  • GRANT SELECT ON SYS.DBA_PENDING_TRANSACTIONS

  • GRANT SELECT ON V$SQL,V$SQL_PLAN,V$SESSION,V$SQL_PLAN_STATISTICS_ALL

  • GRANT SELECT ON V$SESSTAT, V$STATNAME

  • GRANT SELECT ON V$SQL_MONITOR, V$SQL_PLAN_MONITOR

  • GRANT SELECT ON V$SQLSTATS , V$SQLAREA_PLAN_HASH



16. 管中窥豹特性一览


其他新特性包括:

  • Single Server rolling maintenance

  • Native property graphs

  • Oracle RAC on K8s

  • 1024 bytes passwords

  • PL/SQL <-> SQL Transpiler

  • Oracle <-> Kafka 集成



全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

❤️ 欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!

————————————————————————————
公众号:JiekeXu DBA之路
CSDN :https://blog.csdn.net/JiekeXu
墨天轮:https://www.modb.pro/u/4347
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————



Oracle 表碎片检查及整理方案

OGG|Oracle GoldenGate 基础

2021 年公众号历史文章合集整理

2020 年公众号历史文章合集整理

Oracle 19c RAC 遇到的几个问题

利用 OGG 迁移 Oracle11g 到 19C

OGG|Oracle GoldenGate 微服务架构

Oracle 查询表空间使用率超慢问题一则

国产数据库|TiDB 5.4 单机快速安装初体验

Oracle ADG 备库停启维护流程及增量恢复

Linux 环境搭建 MySQL8.0.28 主从同步环境

  点个“在看” 
你的喜欢会被看到❤
继续滑动看下一个

Oracle Database 23c 十小新特性速览 | 从 Schema 权限到 4096 列支持

向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存