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

原文链接:https://www.modb.pro/db/24543 (复制链接至浏览器,即可查看)

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

3ac6748faec74877c2ccfdb14f4a2a5a.png

使用原生的数据类型,在读取或更新操作时不必对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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值