Oracle Database 23c 十小新特性速览,你知道几个?

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

在最近刚刚举行的 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. Javascropt 存储过程

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

图片

7. SQL Domains

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

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

图片

8. DDL的 IF EXISTS判断

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

图片

9. 注释

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

图片

10. 标准的表值构建

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

图片

责任编辑:武晓燕 来源: 数据和云
相关推荐

2021-05-11 05:39:07

Edge微软浏览器

2021-04-13 05:36:18

C#null 可控

2018-11-27 16:42:19

AI数据科技

2023-12-15 10:42:05

2023-04-10 11:25:29

工程交流DX

2023-10-30 18:00:00

Docker命令开源平台

2023-08-29 07:52:09

CSS库网络动画

2022-09-22 07:03:15

Java 18LTSOracle

2022-01-05 11:40:36

Go特性语言

2017-01-18 17:00:35

编辑器

2023-04-27 08:15:09

2021-02-27 17:13:21

前端代码逻辑

2024-01-18 00:16:07

2021-10-12 09:20:02

数据库SQL脚本

2018-04-09 14:26:06

Go语法实践

2013-11-22 16:45:28

SASJMP11

2017-11-23 15:24:35

Python速览实战

2023-05-17 12:33:11

AI人工智能

2009-07-29 09:40:02

Flex 4

2023-11-18 19:28:20

Android 14
点赞
收藏

51CTO技术栈公众号