墨墨导读: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的支持。

使用原生的数据类型,在读取或更新操作时不必对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页!分享珍藏已久的数据库技术年刊

数据和云

ID:OraNews

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

点击下图查看更多 ↓

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

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

请备注:云和恩墨大讲堂

  点个“在看”

你的喜欢会被看到❤

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

  1. 资源放送丨《 先睹为快!Oracle 20c新特性解析》PPT视频

    前段时间,墨天轮邀请到了云和恩墨CTO.ACDU核心专家."Oracle百科全书" 杨廷琨 老师分享<先睹为快!Oracle 20c新特性解析>,在这里我们共享一下PP ...

  2. Oracle 20c 新特性:表空间缺省加密算法 TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM

    导读:在 Oracle 20c中,新增加的初始化化参数,让我们可以获得设置表空间缺省加密算法的能力,这个新的参数是:TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM . ...

  3. Oracle 20c 新特性:持久化内存数据库 - Persistent Memory Database

    导读:随着硬件技术的不断进步,PMEM (Persistent Memory)已经足够成熟,开始进入到数据库加速领域,在 DRAM 和 Flash 之间提供能更强的 IO 层支撑.自 Oracle 2 ...

  4. Oracle 20c 新特性详解:SQL Macro 宏 SCALAR / TABLE 模式带来的敏捷和便利

    导读:在 Oracle 20c 中,SQL的宏支持 - SQL Macro 为 SQL 开发带来了进一步的敏捷和便利,在这篇文章中,我们来详细了解一下 SQL Macro 的特性用法. 以下是概要介绍 ...

  5. Oracle 20c 新特性:缺省的只读 Oracle HOME 支持

    墨墨导读:在 20c 之前,缺省的 ORACLE_HOME 布局将 ORACLE_HOME.ORACLE_BASE_HOME 和 ORACLE_BASE_CONFIG 合并到一个位置.从 20c 开始 ...

  6. Oracle 20c 新特性:XGBoost 机器学习算法和 AutoML 的支持

    墨墨导读:XGBoost是一个高效.可扩展的机器学习算法,用于回归和分类(regression and classification),使得XGBoost Gradient Boosting开源包可用 ...

  7. Oracle 20c 新特性:自动的区域图 - Automatic Zone Maps

    导读:Zone Maps 是一个独立的访问结构,可以为表独立建立.在表和索引扫描期间,区块图可以根据表列上的谓词来修剪表的磁盘块和分区表的潜在完整分区.区块映射可以使用 Attribute Clust ...

  8. Oracle 20c 新特性:SQL 宏支持(SQL Macro)Scalar 和 Table 模式

    SQL宏特性,允许开发人员将复杂的处理通过宏定义实现,随后可以在 SQL 中任何位置调用宏.这个特性的实现类似于12c中实现的 Function in SQL 特性. 在 Oracle Databas ...

  9. Oracle 20c 新特性:表达式参数值 Expressions Parameter Values

    导读:从Oracle数据库20c开始,您可以指定一个表达式作为某些初始化参数的值,这使得数据库能够根据环境变化自动调整参数值.这在 Oracle Autonomous 数据库环境中特别有用. 在 Or ...

最新文章

  1. 类加载器源码、双亲委派、自定义类加载器详解
  2. stm8s103k3 周期 捕获_STM8S103K3 - 主流基本型系列8位MCU,具有8 KB Flash、16 MHz CPU和集成EEPROM - STMicroelectronics...
  3. 基于 HTML5 的 WebGL 3D 档案馆可视化管理系统
  4. js正则匹配闭合标签_正则匹配闭合HTML标签(支持嵌套)
  5. mysql 导出表数据表结构
  6. 毕啸南专栏 | 对话王小川:搜狗不是谁的“变量”,是行业主要玩家
  7. 零售分析用vba还是python_数据分析?Excel、VBA和Python?营销套路还是大势所趋!...
  8. 5、Oracle备份(oracle备份脚本配置)
  9. 【大数据部落】基于R的FP树fp growth 关联数据挖掘技术在煤矿隐患管理
  10. AC日记——A+B Problem(再升级) 洛谷 P1832
  11. FFmpeg滤镜:使用colorkey抠图
  12. 大型网站技术架构 学习总结一(基础了解)
  13. 《特征值与特征向量》定义、意义及例子
  14. 【Office】wps表格如何让后面的单元格随着下拉选项自动填充
  15. 读研究生需要交多少学费?
  16. 国潮复兴——从红旗H9看HMI设计中的东方美学
  17. 东梓关富春江畔有感  文/江湖一劍客
  18. 基于SSM的个人博客
  19. Nb iot php_电信NBIoT物联网平台完整测试流程整理
  20. Unity Networking开发多人联机射击游戏

热门文章

  1. 开放源代码_如何使用开放源代码开展业务:热门阅读
  2. devops 应用_如何在DevOps中应用系统思考
  3. WebStorm 打开Node.js的代码提示功能
  4. jggrid 设置了自适应宽度仍然有滚动条的问题
  5. 浏览器推送 comet
  6. 安全整数和 Number.isSafeInteger()
  7. python生成4位验证码random_python 生成验证码很简单:random和srting的方法
  8. Git笔记(16) 变基
  9. c语言数字排列和算法思路,冒泡排序、快速排序算法理解及C程序实现
  10. 学业水平考试网登录_学业水平报名网址:http://www.eeagd.edu.cn/xyspbm/