Oracle 23c数据库的10个特性介绍

Oracle Database 23c 引入了多项新特性,包括支持不带 FROM 子句的 SELECT 查询、单表最多 4096 列、Schema 级别权限、新增 Boolean 数据类型等。这些特性简化了 SQL 编写,增强了数据库功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看到eygle在数据和云上写了一篇文章,介绍了DOAG 2022会议披露Oracle Database 23c的10个有意思的特性,有些看起来是从其他数据库借鉴过来的,有些则解决了之前操作上的不便,值得关注一下。

(1) 不带FROM子句的SELECT 查询

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

b6407132e0866bd15856092587fc0312.png

(2) 单表支持4096列
Oracle 此前版本单表支持 1000列。在23c中,单表支持列数量扩展到4096列。启用这一个特性需要将兼容性参数设置为23.0.0,同时将 Max_columns设置为Extended,

alter system set MAX_COLUMNS=EXTENDED;

8c80a853972c4383fb588fd91822118e.png

(3) SCHEMA级别的权限

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

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

grant select any table on SCHMEA PROD to HR;

42627c29faf7649c7ce7d7457bcf239e.png


(4) Boolean数据类型

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

20257fa299e86d9cf220c5a3f91ab791.png

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

c857718d33af2817ccfe17e91d5381a5.png

(6) Javascript存储过程

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

bb7de5252ce287df240588a453390e67.png

(7) SQL Domains

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

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

31573850e83564cdc4f5c2c535c1a04f.png

(8) DDL的IF EXISTS判断

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

7dbdafc3d8daa369929b445d06812e83.png

(9) 注释

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

583ac2d670362aa03e2be1d94251966d.png

(10) 标准的表值构建

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

0e5860631903d25ee1f447e9324f1519.png

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

e6fcebe7418248407888d01463703cfd.png

近期更新的文章:

参加腾讯云TVP的Coding吐槽大会感想

世界足坛的一些著名"德比"

什么是"美林时钟"?

MySQL的insert执行操作慢,该怎么整?

MySQL无监听端口的一个场景

近期的热文:

"红警"游戏开源代码带给我们的震撼

文章分类和索引:

公众号1000篇文章分类和索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值