Oracle Database 23c 提供全面、简单易用的融合数据库,能够帮助开发人员轻松构建全新的微服务、图形、文档和关系型应用。
数据库驱动程序异步编程和管道
Oracle Database 23c 中的管道功能使 .NET、Java 和 C/C++ 应用无需等待服务器响应即可向数据库发送多个请求。Oracle Database 将对这些请求进行排队并逐个处理,以便客户端应用可以继续工作,直到收到请求完成通知。这些增强功能可改善最终用户体验、提高数据驱动的应用的响应能力,提供端到端可扩展性,避免性能瓶颈,并提高服务器和客户端的资源利用效率。对于需要立即返回的客户端请求,Oracle Database 管道要求 .NET、Java 和 C/C++ 驱动程序中具备异步或响应式 API。这些机制可用于 Oracle Database,无论是否使用数据库管道。对于 Java,Oracle Database 23c 在 Java Database Connectivity (JDBC)、Universal Connection Pool (UCP) 和 Oracle R2DBC Driver 中提供响应式扩展。它还支持驱动程序 (Project Loom) 中的 Java 虚拟线程以及 Reactive Streams 库,例如 Reactor、RxJava、Akka Streams、Vert.x 等。
区块链表
区块链和不可变表(自 Oracle Database 19c 起可用)可使用加密安全方法保护数据,防止数据被外部黑客和内部恶意/泄露账户篡改或删除。它能够通过仅插入限制来防止非授权更新或删除(即使是 DBA 操作),利用加密哈希链实施身份验证,基于签名表摘要检测任何大规模回滚,支持最终用户使用私钥对插入的行进行签名。时至今日,Oracle Database 23c 带来了丰富的增强功能,包括逻辑复制(基于 Oracle GoldenGate)和滚动升级(基于 Oracle Active Data Guard)支持;分布式事务(涉及区块链表)支持;高效、基于分区的批量删除(适用于过期的行);以及插入/提交性能优化。
Oracle Database 23c 还支持添加/删除列(不影响加密哈希链、用户特定链和关于筛选行的表摘要)、委托签名功能和数据库反签名;还使用 Oracle Flashback 和区块链历史表审计非区块链表历史变更,将加密安全数据管理扩展到了常规表。
这些功能尤其适合内置审计迹或日志使用场景,能够有效满足财务分类账、付款历史、监管合规性跟踪、法律日志和所有表示资产的数据的保护需求,防止非授权篡改和删除操作导致重大法律、商誉或财务损失。
视频
文章
试用
文档
布尔数据类型
Oracle Database 现支持符合 ISO SQL 标准的布尔数据类型,您可以在表中存储 True(真)和 False(假)值,在 SQL 语句中使用布尔表达式。布尔数据类型能够以标准化方式存储 Yes 和 No 值,且可以轻松迁移至 Oracle Database。
视频
博客
- Oracle Database 23c 中的布尔数据类型 (Oracle-Base)
- Oracle Database 23c — Tipo de Datos BOOLEAN en SQL(西班牙语)
- Oracle Database 23c 支持在 SQL 中使用布尔数据类型
- Oracle Database 23c 的更多布尔数据类型特性
- Oracle Database 23c 中的布尔数据类型 (Medium)
文档
在 UPDATE 和 DELETE 语句中直接连接数据库表
Oracle Database 现支持您在 UPDATE 和 DELETE 语句中使用 FROM 子句将目标表连接到其它表。这些其它表可以限定可更改哪些行或为哪些行赋予新值。利用这一直接连接特性,您可以更轻松地编写 SQL 语句来更改和删除数据。
博客
文章
- ACE Lisandro Fernigrini:Oracle Database 23c—Joins en DELETE y UPDATE(西班牙语)
- ACE Timothy Hall:在 Oracle Database 23c 的 UPDATE 和 DELETE 语句中直接连接数据库表
文档
DB_DEVELOPER_ROLE
Oracle Database 23c 新推出了一个新角色 DB_DEVELOPER_ROLE,它能够为应用开发人员提供在 Oracle Database 上设计、实施、调试和部署应用所需的所有权限,无需管理员再主观猜测应用开发需要哪些权限。
博客
文档
DBMS_Search
DBMS_SEARCH 执行 Oracle Text 普适搜索。使用 DBMS_SEARCH,您可以轻松在多个表和视图上创建单一索引。您只需创建 DBMS_SEARCH 索引并添加表和视图即可。所有可搜索值(包括 VARCHAR、CLOB、JSON 和数字列)都将包含在索引中,并在表或视图内容发生更改时自动进行维护。
文章
试用
文档
快速摄取增强功能
我们在 Memoptimized Rowstore Fast Ingest 中引入增强功能,支持分区、压缩表、使用直接写入快速刷新以及直接内存中列存储填充。这些增强功能使 Fast Ingest 功能适用于更多需要快速摄取数据的情况。现在,Oracle Database 可以更好地支持需要快速数据摄取功能的应用。数据摄取后,您可以在同一数据库中处理所有数据。这将减少对特殊加载环境的需求,从而降低复杂性和数据冗余。
博客
文档
GROUP BY 列别名
现在您可以在 GROUP BY、GROUP BY CUBE、GROUP BY ROLLUP 和 GROUP BY GROUPING SETS 子句中使用列别名或指定 SELECT 项位置。此外,HAVING 子句也支持列别名。这些新的 Database 23c 增强功能可帮助您更轻松地编写 GROUP BY 和 HAVING 子句,从而提高 SQL 查询的可读性和可维护性,并提高 SQL 代码的可移植性。
视频
博客
文档
IF [NOT] EXISTS
Oracle Database 中的 DDL 对象创建、修改和删除现已支持 IF EXISTS 和 IF NOT EXISTS 语法修饰符。由此,您可以控制当一个给定对象存在或不存在时是否报错,在脚本中按应用简化错误处理。
视频
博客
文章
- ACE Timothy Hall:Oracle Database 23c 中的 IF [NOT] EXISTS DDL 子句
- ACE Lisandro Fernigrini:Oracle Database 23c—IF [NOT] EXISTS en Sentencias DDL(西班牙语)
文档
JavaScript 存储过程
多语言引擎 (MLE) 模块调用功能支持开发人员在 SQL 和 PL/SQL 中调用模块中存储的 JavaScript 函数。基于 PL/SQL 编写的调用规范能够将 JavaScript 链接到 PL/SQL 代码单元。这意味着开发人员可以在任何调用了 PL/SQL 函数的位置使用 JavaScript 函数。
博客
- Oracle Database 23c Free—Developer Release 中的 JavaScript 简介
- 使用 Oracle Database 23c Free—Developer Release 的 JavaScript 社区模块
- 如何在 Oracle Database 23c Free 中导入 JavaScript ES 模块并在 SQL 查询中使用?
试用
- APEX + 服务器端 JavaScript (MLE)
- 轻松使用 Oracle Database 23c Free-Developer Release 中的 JavaScript 创建数据驱动型应用
文档
JSON 二进制数据类型
JSON 数据类型是经过 Oracle 优化的二进制 JSON 格式,称为 OSON。它旨在提高数据库和数据库客户端(21c 及更高版本)的查询速度和 DML 性能。
博客
文章
文档
JSON Relational Duality 视图
JSON Relational Duality 是 Oracle Database 23c 引入的一个创新特性,它能够统一关系和文档数据模型,将两者优势结合在一起。这意味着,开发人员可以基于单一信息源构建关系模式或 JSON 模式应用,同时获得这两种模型的优势。他们只需进行一次数据存储,即可使用任一方法访问、写入和修改数据。此外,开发人员还能够充分利用符合 ACID 规则的事务处理和并发控制,不再需要在复杂的对象关系映射或数据不一致问题之间进行取舍。
试用
文章
博客
- JSON Relational Duality 的关键优势
- 使用 JSON Relational Duality 与 Oracle Database API for MongoDB
- REST 与 JSON Relational Duality
- JSON Relational Duality:文档、对象和关系模型的颠覆性融合
文档
JSON Schema
Oracle Database 支持使用 JSON 来存储和处理弹性模式的数据。在新版本的 Oracle Database 23c 中,Oracle Database 现已支持使用 JSON Schema 来验证 JSON 数据的结构和值。SQL 运算符 IS JSON 经过增强,可以接受 JSON Schema,并且添加了各种 PL/SQL 函数来验证 JSON 并将数据库对象(如表、视图和类型)描述为 JSON Schema 文档。
默认情况下,JSON 数据是无模式的,这带来了极大的灵活性。但是,如果您需要确保 JSON 数据具有特定的结构和类型,可以通过行业标准的 JSON Schema 验证来完成。
为 JSON Schema 开发做出贡献
Oracle 积极推动 JSON Schema 开发,这是一款开发工具,它将基于 JSON 的声明式语言实现标准化,支持您批注和验证 JSON 文档。JSON Schema 目前正处于请求注解 (RFC) 阶段。
视频
博客
文章
文档
Kafka API
Oracle Database 23c 提供更精细的 Oracle Database 与 Apache Kafka 应用兼容性,支持轻松将 Kafka Java 应用迁移至 Transactional Event Queues (TxEventQ)。这意味着 Kafka Java API 现在可以连接 Oracle Database 服务器,使用 TxEventQ 作为消息传递平台。
开发人员可以使用 JDBC 瘦驱动程序,轻松将现有的使用 Kafka 的 Java 应用迁移至 Oracle Database。同时,利用 Oracle Database 23c 的客户端库功能,Kafka 应用可以连接 Oracle Database(而非 Kafka 集群),并透明地使用 TxEventQ 作为消息传递平台。
试用
文章
博客
- Oracle 面向 Transactional Event Queues 发布兼容 Kafka 的 23c 版 Java API
- 使用面向 TxEventQ 的 Kafka Java 客户端 — 构建简单易用的生产者和使用者体验
- Oracle REST Data Services 22.3 面向 Transactional Event Queueing 推出全新的 REST API
文档
无锁列值保留
Lock-Free Reservations 特性可确保并发事务在频繁更新行时继续无阻滞运行。顾名思义,Lock-Free Reservations 支持对行进行无锁保留(而不是锁定行),能够验证更新能否成功,延迟更新直到事务提交时间。Lock-Free Reservations 可有效改善用户体验,提高事务并发性能。
视频
博客
- ACE Lucas Jellema:Oracle Database 23c — 细粒度锁定 — Lock-Free Reservations
- ACE Tim Hall:使用 Oracle Database 23c 的 Lock-Free Reservations 特性防止会话阻滞
试用
文档
可操作属性图
Oracle Database 原生支持属性图数据结构和图形查询。如果您希望灵活地基于事务数据、JSON、Spatial 和其它类型数据构建图形,Oracle Database 是您的理想之选。现在,开发人员可以在 Oracle Database 中使用现有 SQL 开发工具和框架轻松构建图形应用。
视频
- 在 Oracle Database 23c Free - Developer Release 中使用 SQL 创建、查询并进行属性图可视化 (3:53)
- 2022 年甲骨文全球云大会:当属性图遇到 SQL (30:29)
博客
- Oracle Database 23c Free - Developer Release 中的可操作属性图
- SQL Developer Release 23.1:属性图
- Oracle Database 23c Free - Developer Release 属性图快速入门
文章
- Lucas Jellema:适用于网络样式查询的 SQL 属性图
- Lucas Jellema:使用 Formula One 数据在关系数据库中进行图形数据库样式探索(点击这里访问 Github)
- ACE Timothy Hall:在 Oracle Database 23c 中使用 SQL/PGQ 和属性图
试用
文档
PL/SQL JSON 构造函数支持聚合类型
PL/SQL JSON 构造函数经过增强,可以接受对应的 PL/SQL 聚合类型实例,返回填充了聚合类型数据的 JSON 对象或数组类型。
PL/SQL JSON_VALUE 运算符经过增强,它的返回子句可以接受类型名称,后者用于定义运算符要返回的实例的类型。JSON 构造函数支持聚合数据类型,这简化了 PL/SQL 应用与支持 JSON 的语言之间的数据交换。
RETURNING INTO 子句
INSERT、UPDATE 和 DELETE 语句的 RETURNING INTO 子句经过增强,可以返回受相应语句影响的旧值和新值。开发人员可以对每个 DML 类型使用相同的逻辑来获取语句执行前和执行后的值。旧值和新值仅对 UPDATE 语句有效。INSERT 语句不返回旧值,DELETE 语句不返回新值。
作为 SQL 命令执行的一部分,该子句能够获取受 INSERT、UPDATE 和 DELETE 语句影响的旧值和新值,这为开发人员提供了读取这些值的统一方法,并减少了数据库必须执行的工作量。
视频
博客
文档
模式权限
除了现有的对象、系统和管理权限外,Oracle Database 如今还支持模式权限。模式权限特性可以简化数据库对象授权,有助于更好地实施最小权限原则,消除关于访问权限的主观猜测,进而提高安全性。
视频
博客
- ACE Tim Hall:Oracle Database 23c 模式权限特性
- ACE Peter Finnigan:Oracle Database 23c 模式级授权
- ACE Gavin Soorma:Oracle Database 23c 模式级权限和 Schema-Only 用户
- Oracle Database 23c 模式级授权
示例代码
文档
SELECT 语句不带 FROM 子句
您现在可以运行只有 SELECT 表达式(不带 FROM 子句)的查询。这个新特性可提高 SQL 代码可移植性并便于开发人员使用。
视频
博客
文档
SQL 宏
通过创建 SQL 宏,您可以将常见 SQL 表达式和语句分解为可在其它 SQL 语句中重用的参数化构造。SQL 宏既可以是标量表达式(常用于 SELECT 列表以及 WHERE、GROUP BY 和 HAVING 子句),也可以是表表达式(常用于 FROM 子句),还可以用于封装计算和业务逻辑。相比 PL/SQL 结构,SQL 宏可以显著提升性能,还可以提高开发人员效率,简化协作开发和优化代码质量。
视频
试用
博客
文档
SQL Firewall
使用 SQL Firewall 检测异常并防止 SQL 注入攻击。SQL Firewall 会检查所有 SQL,包括 IP 地址和操作系统用户等会话上下文信息。它嵌入到数据库内核中,将记录和(如果启用)阻止未经授权的 SQL,确保自身无法被绕过。通过实施 SQL 和经过批准的会话上下文允许列表,SQL Firewall 可以预防许多零日攻击,并降低凭证被盗用或滥用的风险。
博客
文章
- Oracle Database 23c 新特性 — SQL Firewall,作者:Oracle ACE Director Gavin Soorma
- Oracle Database 23c 中的三个新 PL/SQL 程序包,作者:Oracle ACE Director Julian Dontcheff
- Oracle Database 23c 中的 SQL Firewall,作者:Oracle ACE Director Tim Hall
- SQL Firewall, Oracle Database 23c,作者:数据库安全专家 Pete Finnigan:第一部分、第二部分、第三部分
实操教程
文档
表值构造函数
Oracle Database SQL 引擎现支持对多种语句类型使用 VALUES 子句,帮助您在不依赖现有表的情况下使用新语法指定数据行,从而动态地实现数据行实体化。Oracle Database 23c 支持对 SELECT、INSERT 和 MERGE 语句使用 VALUES 子句。利用新引入的 VALUES 子句,开发人员无需再编写大量代码来执行即席 SQL 指令,因此这在提高可读性的同时也减少了开发人员工作量。
视频
博客
文章
文档
使用注解
注解可帮助您更好地存储和检索数据库对象元数据。作为一种自由格式文本字段,它们支持您自定义业务逻辑或用户界面。利用注解(名值对或仅仅一个名称),您可以在所有应用中一致地使用数据库对象,简化开发工作并提高数据质量。
博客
文章
文档
Reference
https://www.oracle.com/cn/database/23c/