在Oracle数据库21c中,引入了原生JSON数据类型, Oracle 对JSON的支持更好。使用原生的JSON数据类型,在插入数据时,对JSON进行解析后以二进制格式保存,在读取或更新操作时不需要再解析,使得读取和更新速度更快。
在Oracle数据库中,可以使用标准SQL查询JSON文档,Oracle还提供了很多的函数来查询、生成和更新JSON数据,还可以通过JSON_DATAGUIDE来探查JSON文档由哪些属性组成,创建JSON文档视图等。开发人员还可以通过使用Java、Python 、Node.js、C、REST的SODA(Simple Oracle Document Access) API来访问Oracle数据库,使得Oracle数据库对JSON的支持更加多样和灵活。
为了更好的方便大家使用Oracle JSON,Oracle还引入了适用于 MongoDB 的 Oracle Database API,建立了一条从MongoDB到Oracle数据库的通道。使用这些API,您可以将为 MongoDB 编写的应用程序连接到 Oracle 数据库,就像连接到MongoDB一样。因为Oracle Database API将 MongoDB 操作转换为等效的 SQL/JSON 操作,MongoDB的集合可以在Oracle 数据库中存储、更新和查询。
在 Oracle数据库23c 中,对JSON 的支持进一步增强 ,其中最具有代表性的就是 JSON Relational Duality。这项突破性创新将JSON 文档和规范化关系的优势融合在一个数据库中,解决了应用程序使用数据方式与关系数据库存储数据方式之间的不匹配问题,帮助开发人员克服了在构建应用程序时所面临的挑战。它具备了关系模型与JSON文档模型的优势,可以将数据以高效的规范化格式存储在关系表中,开发人员可以使用 Mongo API、SQL JSON 或两者来构建应用程序,从而简化应用开发。JSON Relational Duality不仅仅是 Oracle 的一个创新特性,这项技术将改变开发人员的使用方式,也将被业内许多其他产品采用。
https://docs.oracle.com/en/database/oracle/oracle-database/19/adjsn/changes.html
https://blogs.oracle.com/database/post/installing-database-api-for-mongodb-for-any-oracle-database
https://blogs.oracle.com/sql/post/how-to-store-query-and-create-json-documents-in-oracle-database
https://blogs.oracle.com/database/post/json-datatype-support-in-oracle-21c
https://github.com/oracle/json-in-db