Oracle 20c 新特性:原生的 JSON 数据类型(Native JSON Datatype)

摘要:
Oracle在12c版本中引入了对JSON的支持,允许JSON存储在数据库中的varchar2或LOB中。Oracle还提供了一些工具来发现哪些属性构成JSON文档,并创建集合的关系视图。在Oracle数据库20c中,Oracle继续通过提供原生数据类型“JSON”来加强和改进对JSON的支持。现在创建一个包含JSON类型的数据表,类似于CREATETABLEj_新的顺序数据类型并不是Oracle数据库20c中为JSON引入的唯一更改。Oracle还添加了一个新的JSON函数JSON_TRANSFORM,这使得在一次操作中更新和删除文档中的多个属性变得更加容易。

墨墨导读:Oracle 在 12c(12.1.0.2)版本中引入了对JSON的支持,允许将JSON存储在数据库中的varchar2或LOB(CLOB或BLOB)中。这意味着,我们可以利用无模式设计模型所提供的灵活性来构建应用程序,但又能从Oracle数据库的强大功能中受益。

Oracle 在 12c(12.1.0.2)版本中引入了对JSON的支持,允许将JSON存储在数据库中的varchar2或LOB(CLOB或BLOB)中。这意味着,我们可以利用无模式设计模型所提供的灵活性来构建应用程序,但又能从Oracle数据库的强大功能中受益。

早期版本中创建包含 JSON 对象的表,类似:

CREATE TABLE theater (   theater_id    VARCHAR2(255),   json_document BLOB
 );

对于 BLOB 类型的插入,需要对数据进行转换:

INSERT INTO theaters (theater_name, json_document) VALUES ('Century_16_Redwood',  utl_raw.cast_to_raw('{"id":1,             "name":"Century 16",             "location":{"street":"Main St",                     "city":"Redwood",                     "zipCode":"94607",                     "state":"CA",                    "phoneNumber":null                       }                 }'));


Oracle 的 JSON 支持,使得我们可以使用标准SQL查询JSON文档,也可以利用高级分析功能,对单个属性或整个文档进行索引,并行处理数十亿个JSON文档,云和恩墨的部分客户已经在 12.1 版本时采用了这个特性,使得数据库支持 NoSQL 上更加丰富灵活。

Oracle 还提供了一些工具来发现JSON文档是由哪些属性组成的,并在集合之上创建关系视图。开发人员还可以通过使用Java、Node.js、Python、C语言和REST的SODA API来访问Oracle数据库,你甚至可以将Oracle 数据库视为一个 NoSQL数据库。

JSON 是 Oracle 多模化支持的一个重要演进。

在Oracle数据库20c中,通过提供一个 Native 数据类型 "JSON ",继续加强和改进了 Oracle 对JSON的支持。


Oracle 20c 新特性:原生的 JSON 数据类型(Native JSON Datatype)第1张

使用原生的数据类型,在读取或更新操作时不必对JSON进行解析,而只在插入时才进行解析,然后JSON以内部二进制格式保存,这使得访问速度更快。这可以使读取和更新操作的速度提高4到5倍,更新到非常大的JSON文档的速度提高20到30倍。

现在创建一个包含 JSON 类型的数据表类似:

CREATE TABLE j_order (   id INTEGER PRIMARY KEY,   po_doc JSON )


新的数据类型并不是Oracle数据库20c中为JSON引入的唯一变化,Oracle还增加了一个新的JSON函数JSON_TRANSFORM,它使得在一次操作中更新和删除文档中的多个属性变得更加简单。

参考:https://docs.oracle.com/en/database/oracle/oracle-database/20/adjsn/oracle-sql-function-json_transform.html#GUID-7BED994B-EAA3-4FF0-824D-C12ADAB862C1

墨天轮原文链接:https://www.modb.pro/db/24543(复制到浏览器中打开或者点击“阅读原文”可查看)

推荐阅读:144页!分享珍藏已久的数据库技术年刊

Oracle 20c 新特性:原生的 JSON 数据类型(Native JSON Datatype)第2张

数据和云

ID:OraNews

如有收获,请划至底部,点击“在看”,谢谢!

点击下图查看更多 ↓

Oracle 20c 新特性:原生的 JSON 数据类型(Native JSON Datatype)第3张

Oracle 20c 新特性:原生的 JSON 数据类型(Native JSON Datatype)第4张

Oracle 20c 新特性:原生的 JSON 数据类型(Native JSON Datatype)第5张

云和恩墨大讲堂 | 一个分享交流的地方

长按,识别二维码,加入万人交流社群

Oracle 20c 新特性:原生的 JSON 数据类型(Native JSON Datatype)第6张

请备注:云和恩墨大讲堂

  点个“在看”

你的喜欢会被看到❤

免责声明:文章转载自《Oracle 20c 新特性:原生的 JSON 数据类型(Native JSON Datatype)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇magento添加调用block的几种方法js获取当前时间戳以及前一天时间戳下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Vba+access+Excel编程

学习目的是建立简易的管理系统 当前学习路线:excel的宏的简单了解→access数据库的了解→两者的结合 excel的宏的简单了解: 关于宏的使用,大部分文章都提到说Vba很难写,但是可以通过一段现成的代码,修改关键部分来为自己所用,现成代码的获得方式就是录制宏,在其自动生成的代码上添加循环等修改,达到自己想要的效果。 关于宏的录制与代码的修改运行如下:...

总结PHP缓存技术的多种方法

这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。 1、普遍缓存技术: 数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如...

MySQL之字段约束与权限管理

一、常见的字段约束在MySQL数据库中有许多常见的字段约束,所谓的字段约束就是在设置字段时需要给字段添加一些“枷锁”。 常见的字段约束有: INT(n)     数据类型及允许数据的个数 NOT NULL   非空 DEFAULT    默认值 PRIMARY KEY  主键约束,不能为空,不能重复,一般情况下一张表中至少要有一个主键 AUTO_INCR...

MyCat 概念与配置

1.1 Mycat 介绍与核心概念 1.1.1 基本介绍 历史:从阿里 cobar 升级而来,由开源组织维护,2.0 正在开发中。 定位:运行在应用和数据库之间,可以当做一个 MySQL 服务器使用,实现对 MySQL数据库的分库分表,也可以通过 JDBC 支持其他的数据库。 Mycat 的关键特性(官网首页) 1、可以当做一个 MySQL 数据库来...

灰度环境

转载: https://www.cnblogs.com/rawboys/p/11656433.html 预发布环境: 1、只是一台服务器 2、没有真实的流量 3、连线上数据库 疑问:如果某一待上线需求,改动的是数据库表结构,怎么处理? 先把预发布环境使用的数据库切换为测试环境使用的数据库 根据实际部署过程,如果有必要,接着,可有针对性的测试下数据库的变更是...

Windows下Oracle 11g安装以及创建数据库

安装数据库事实上Oracle安装 1、安装准备 Oracle的安装包下载以后是两个压缩包,同时选中两个压缩包右击进行解压   2、解压完成如下图所示   3、双击 setup.exe 文件进行安装,会弹出以下窗口   安全配置:随即会进入安装界面,此时让我们填写电子邮箱,邮箱不是必填选项,可填可不填,不填写的话会有一个提示,我们可直接无视,点击是进入下一步...