Using JSON in Oracle 12c

Similar documents
会 宗旨 理解 Oracle 12c 如何支持 JSON 在数据 中存 JSON 数据 熟悉 JSON 的条件和功能 使用 JSON 条件和功能 JSON 数据 在 JSON_TABLE 上使用 SQL JSON 数据 2

教 学 目 标 描 述 主 要 数 据 库 对 象 创 建 表 描 述 列 定 义 时 可 用 的 数 据 类 型 改 变 表 的 定 义 删 除 改 名 和 截 断 表 描 述 每 个 DML 语 句 插 入 行 到 表 中 更 新 表 中 的 行 从 表 中 删 除 行 描 述 约 束 创 建

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

vi JSON JSON API XML JSON JSON JavaScript RESTful JSON Douglas Crockford JSON / RESTful API JavaScript Node.js Ruby on Rails Java Groovy

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

untitled

季刊9web.indd

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

untitled

基于ECO的UML模型驱动的数据库应用开发1.doc

使用SQL Developer

Function of SQL

天津天狮学院关于修订2014级本科培养方案的指导意见

APEC

臺銀人壽「98年九至十一職等人員甄試」

untitled

PowerPoint Presentation

目錄

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

「西醫基層總額支付委員會《第28次委員會議紀錄

SQL 书写规范

untitled

Microsoft PowerPoint - MIS_Lec03.ppt [相容模式]

untitled

Oracle高级复制冲突解决机制的研究

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

FileMaker 16 ODBC 和 JDBC 指南

Oracle Database 10g: SQL (OCE) 的第一堂課

基于UML建模的管理管理信息系统项目案例导航——VB篇

Microsoft Word 電腦軟體設計.doc

个 小 小 的 乡 下 人 木 匠 的 儿 子, 竟 然 有 这 么 大 的 力 量 其 实 就 是 这 点, 祂 活 出 来 的 那 种 爱, 是 世 界 上 没 有 的 祂 活 出 来 的 爱 是 世 界 上 的 人 都 需 要 的, 但 却 是 人 人 在 这 个 世 界 上 都 得 不 到

2013年度西藏自治区教育厅

實用文格式大全.doc

薛 秦 高 继 宁 宋 明 锁 文 洪 梁 瑞 敏 贾 跃 进 内 蒙 古 自 治 区 (3 人 ) 琪 格 其 图 米 子 良 赵 震 生 辽 宁 省 (8 人 ) 田 素 琴 白 凤 鸣 肖 瑞 崇 黄 恩 申 白 长 川 杨 世 勇 李 敬 林 王 秀 云 吉 林 省 (5 人 ) 赵 继 福

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

untitled

untitled

ebook215-5

Oracle高级复制配置手册_业务广告_.doc

Microsoft Word - 序+目錄.doc

FileMaker 15 ODBC 和 JDBC 指南

Microsoft Word - 三峽鎮衛生所_3_-張家宸.李永繁.doc

Microsoft Word - 武漢大學交流營心得_黃莉云_.doc

untitled

Microsoft PowerPoint - MIS_Lec02.ppt [相容模式]

RUN_PC連載_8_.doc

untitled

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Azure_s

電機工程系認可證照清單 /7/1

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

0SQL SQL SQL SQL SQL 3 SQL DBMS Oracle DBMS DBMS DBMS DBMS RDBMS R DBMS 2 DBMS RDBMS R SQL SQL SQL SQL SELECT au_fname,au_ lname FROM authors ORDER BY

11 天 山 区 区 环 卫 清 运 队 机 械 工 程 师 4011 C 1 不 限 不 限 机 电 具 有 两 以 工 作 经 12 天 山 区 乌 鲁 木 齐 市 第 15 小 会 计 4012 C 1 不 限 不 限 会 计 财 会 财 电 算 化 临 床 医 预 防 医 公 共 卫 生 与

Scott Siu!!! Postgres! 2016!! EnterpriseDB! RedHat RHCA! Who am I! (WeChat)!

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

200910全文.doc

安徽电子工程学校

ebook46-23

Microsoft PowerPoint - Ch6

附件三

untitled

目 录 专 稿 季 烨 文 革 之 初 北 京 师 大 二 附 中 的 红 色 暴 力 姜 培 良 之 死 与 仇 恨 教 育 评 论 唐 燕 关 于 北 京 女 十 中 教 师 孙 迪 之 死 给 王 友 琴 纠 错 校 史 王 逸 伦 编 辑 合 肥 市 第 六 中 学 校 史 关 于 文 革

通过Hive将数据写入到ElasticSearch

ebook 96-16

近四年网络工程专业培养方案.doc

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

final

目 录 简 介.3 ` 体 系 结 构...4 数 据 层...5 数 据 连 接 器...6 Tableau Server 组 件...7 网 关 / 负 载 平 衡 器...8 客 户 端 :Web 浏 览 器 和 移 动 应 用 程 序...8 客 户 端 :Tableau Desktop..

数据库系统概论


团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

未命名

中国软件2013校园招聘通知

2 SGML, XML Document Traditional WYSIWYG Document Content Presentation Content Presentation Structure Structure? XML/SGML 3 2 SGML SGML Standard Gener

目錄 C ontents Chapter MTA Chapter Chapter

Oracle Reports培训教程20.doc

<4D F736F F D20B1D0A87CB3A1C5E9A87CB870B8C9A755B1C0B0CABEC7AED5C5E9A87CB942B0CAB56FAE69B867B64FADECAB682E646F6378>

计算机软件技术专业教学计划

SQL Server SQL Server SQL Mail Windows NT

背 景 概 述 企 业 需 要 一 种 灵 活 的 平 台 来 快 速 构 建 测 试 和 扩 展 新 的 应 用 程 序 服 务 并 对 市 场 中 发 生 的 数 字 化 变 革 作 出 反 应 数 字 化 变 革 正 在 加 快 步 伐, 因 为 流 程 和 信 息 的 日 益 融 合 带 来

<4D F736F F F696E74202D DA578C657B27BA6E6ABD8BF76B5B2BA63A475B57BAABABADEB27AA8EEABD7BB50A7EFB669ABD8C4B32DBDB2A7D3B4AD2E BACDBAE65BCD2A6A15D>

投影片 1

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

Microsoft Word - report 4.doc

Microsoft Word 二專招生簡章_全_.doc

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

单元四数据的查询 数据库原理与应用 课内例题 任务 5 多表查询 课内例题 例创建数据表 orders, 并向表中添加记录 首先创建表 orders,sql 语句如下 : CREATE TABLE orders( o_num int NOT NULL AUTO_INCREMENT, o_date d

<4D F736F F D20B1A6BCA6CAD0C7F8D3F2CEC0C9FAD0C5CFA2C6BDCCA8BBA5C1AABBA5CDA8CAB5CAA9B9E6B7B6>

信息

Microsoft Word - HHG 14 Page 001.doc

ebook10-5

Oracle 4

1. 二 進 制 數 值 ( ) 2 轉 換 為 十 六 進 制 時, 其 值 為 何? (A) ( 69 ) 16 (B) ( 39 ) 16 (C) ( 7 A ) 16 (D) ( 8 A ) 在 電 腦 術 語 中 常 用 的 UPS, 其 主 要 功 能

杭师大党字〔2011〕15号中共杭州师范大学委员会关于进一步加强和改进发展党员工作的意见

<4D F736F F D A67EAF64BEC7BCFABEC7AAF7C2B2B3B95FA5FEB3A1AAA95F2D31312E31362E646F63>

得 依 法 召 集 股 東 臨 時 會 第 十 一 條 : 股 東 常 會 之 召 集 應 於 開 會 三 十 日 前, 股 東 臨 時 會 之 召 集 應 於 開 會 十 五 日 前, 將 開 會 日 期 地 點 及 召 集 事 由 通 知 各 股 東 並 公 告 之 第 十 二 條 : 本 公

同 時, 那 些 百 萬 富 翁 們 正 乘 坐 着 私 家 噴 射 機 駛 往 歐 洲, 甘 願 花 大 把 的 鈔 票 接 受 替 代 療 法 並 且 重 獲 了 健 康 替 代 療 法 總 是 很 靈 嗎? 不, 當 然 不 是 在 這 世 界 上 没 有 盡 善 盡 美 的 事 物 但 是

<4D F736F F D B2C431A6B8A4A4A4DFA8C6B0C8B77CC4B3ACF6BFFD E646F63>

Transcription:

在 Oracle 12c 使用 JSON 演讲人 : John Jay King 下载地址 : 1

会议宗旨 理解 Oracle 12c 如何支持 JSON 在数据库中存储 JSON 数据 熟悉 JSON 的条件和功能 使用 JSON 条件和功能查询 JSON 数据 在 JSON_TABLE 上使用 SQL 查询 JSON 数据 2

个人简介 John King King Training Resources 的股东 Oracle Ace 总监 Oak Table Network 成员 给 Oracle 和 IT 社团提供培训, 有超过 25 年的工作经验, 网址是 对 Oracle, ADF, SQL, Java, 和 PL/SQL( 还有一些其他课题 ) 了如指掌的 技术专家 AZORA, ODTUG, IOUG, 和 RMOUG 的成员 3

何为 JSON JSON (JavaScript Object Notation) 是一种独立于语言, 开放式的 (www.json.org) 在名值对中储存文本 最初出现在 JavaScript, 现在也出现于 : Java, R,.NET, PHP, Python, Node.js, 和 Oracle 中 常用于数据互换 频繁用于在 REST-style 网络服务中来回传递数据 因大数据的持久性而广受欢迎 4

12c (12.1.0.2) 和 JSON 12c patch-set 2 (12.1.0.2) 添加了 JSON JSON 文件以 VARCHAR2, CLOB, 或 BLOB 数据类型进行存储 JSON 数据可以和 Oracle 现有包括 SQL 和 Analytics 的所有特性一起工作 12c 支持 JSON data 基于路径的查询, 这些数据存储在数据库, JSON Path Language, 和 JSON Path Expressions 中 通过 SQL/JSON 视图, 在 SQL 中使用 JSON JSON 文件可以被索引 5

JSON-XML 相似性 JSON 就像 XML 格式一样, 只是文本, 因此它是进行数据互换的一种有效媒介 JSON 和 XML 是 人们可读的 并且能够进行 自描述 ( 有点 ) JSON 和 XML 是分层的 ( 数据集合安置在数据集内 ) JSON 和 XML 提供了验证功能 ; 现在 XML 的功能愈加成熟 6

JSON-XML 差异性 XML 比较冗长, JSON 相对更精简 JSON 没有结束标记, 而 XML 中则需要有结束标记 JSON 在读写速度方面更快 读取 XML 文件时需要 遍历 DOM JSON 则不需要 与 AJAX 一起运行时, 相对 XML 来说,JSON 运行起来更加便捷快速 在处理数据之前,XML 文件必须进行 语法规则 测试 7

JSON 句法 使用逗点隔开的名 / 值对来存储数据 字段名 / 键 ( 由双引号括起来 ) 冒号 :, 值 ( 由双引号括起的字符串, 不需要括起来的数值, 布尔值 trur/false/null 对象包含在大括号内 { & } {"lastname":"king"} 数组使用方括号 [ & ] 和逗号 [ {"lastname": "King"}, {"lastname": "Manzo"} ] 8

<?xml version="1.0"?> <mybooks> <book> <name>learning XML</name> <author>eric T. Ray</author> XML 文件 <publisher>o'reilly</publisher> </book> <book> <name>xml Bible</name> <author>elliotte Rusty Harold</author> <publisher>idg Books</publisher> </book> <book> <name>xml by Example</name> <author>sean McGrath</author> </book> </mybooks> 9

JSON 文件 {"mybooks": [ {"book": { "name":"learning XML", "author":"eric T. Ray", "publisher":"o'reilly" } }, {"book": { "name":"xml Bible", "author":"elliotte Rusty Harold", "publisher":"idg Books" } }, {"book": { "name":"xml by Example", "author":"sean McGrath", "publisher":"prentice-hall" } } ]} 10

Oracle 作为 JSON 数据存储 JSON 文件使用现有的数据类型存储到数据库中 VARCHAR2, CLOB 和 BLOB 针对 JSON 字符模式 外部的 JSON 数据资源 ( 包括 HDFS 文件系统中的那些资源 ) 可以通过外部表来获取 基于 JSON_TABLE 的相关视图, 使用 SQL 来获取 JSON 数据 Oracle JSON 文件可以被索引 ; JSON 路径可以使用功能索引 11

JSON SQL JSON 内容可以从 SQL 中获取, 而且可以视为 JSON 来使用 : JSON 条件运算符 JSON 功能 JSON 运算符和功能函数使用 JSON Path 语言来引导 JSON 对象 12

JSON 运算符 JSON 内容可以经过新的条件运算符从 SQL 中 IS JSON 验证 JSON, 通常是在 CHECK 限制和 WHERE 中 (IS / IS NOT) JSON_EXISTS 如果 JSON 路径在文件中存在则为 True JSON_TEXTCONTAINS 如果在 JSON 的属性值中发现文本字符串则为 True ( 使用 Oracle 文本 ) 13

JSON 功能 JSON 内容也可以通过新的功能来获取 JSON_VALUE 用来从 JSON 文件中查询标量值 JSON_QUERY 用来查询所有或者部分 JSON 文件内容 JSON_TABLE 用来查询 JSON 文件并且创建相关格式的列 14

IS JSON IS NOT JSON 如果特定的表达是一个有效的 JSON 文件, 那么 IS JSON 会返回 TRUE **expr** IS JSON IS NOT JSON FORMAT JSON STRICT LAX WITH WITHOUT UNIQUE KEYS 如果是有效的 JSON, 则为 IS true, 如果不是 JSON, 则为 IS NOT true FORMAT JSON ( 只是满足 BLOB 数据的需要 ) STRICT / LAX 严格检查级别 如果需要主键, 则为 WITH / WITHOUT 15

create table deptj JSON Check 有约束嘛 (id raw(16) not null, dept_info clob constraint deptjson check (dept_info is json) ); create table deptj (id raw(16) not null, dept_info clob constraint deptjson check (dept_info is json strict) ); 16

select id,dept_info from deptj where dept_info is json IS JSON in WHERE select id,dept_info from deptj where dept_info is json strict; select id,dept_info from deptj where dept_info is json format json strict; 17

insert into deptj values (sys_guid(), '{"departments":{ JSON 和 DML "DEPTNO": 10, "DNAME": "ACCOUNTING", "LOC": "NEW YORK", "deptemps": [ { "EMPNO": 7782, "ENAME": "CLARK", "JOB": "MANAGER", "MGR": 7839, "HIREDATE": "09-JUN-81", "pay":{ "SAL": 2450, "DEPTNO": "10" }, /* more */ "COMM": null}, 18

简单的 JSON Query select dept_info from deptj; DEPT_INFO --------------------------------------------- {"departments":{ "DEPTNO": 10, "DNAME": "ACCOUNTING", "LOC": "NEW YORK", "deptemps": [ { "EMPNO": 7782, "ENAME": "CLARK", **** more **** 19

JSON 路径 JSON 文件中的 $.jsonpath Identifies 路径 $. ( 需要的 ) Jsonpath ( 如果不需要整个文件的返回, 那么就指定查找 JSON 文件中的部分来进行搜寻 ) 由 JSON_QUERY, JSON_VALUE, JSON_TABLE, JSON_EXISTS, JSON_TEXTCONTAINS 使用的 JSON path 20

JSON_VALUE JSON_VALUE 在 JSON 文件中发现了一个值, 并将它作为 VARCHAR2 或者 NUMBER 返回给 SQL JSON_VALUE (expr expr FORMAT JSON, '$.jsonpath RETURNING VARCHAR2(n) NUMBER(n,n) ERROR NULL DEFAULT xxx ON ERROR ) 21

使用 JSON_VALUE 查询 select json_value(dept_info, '$.departments.dname') from deptj; DNAME ----------------- ACCOUNTING RESEARCH SALES OPERATIONS 22

JSON_VALUE JSON_VALUE 从 JSON 数据中返回标量值 select json_value(dept_info, '$.departments.dname') from deptj; select json_value(dept_info, '$.departments.deptemps[0].ename') from deptj; select dept_info from deptj where json_value(dept_info, '$[0].departments.DEPTNO') = '10' 23

JSON_TABLE JSON_TABLE 把 JSON 数据匹配到相关的行和列中 JSON_TABLE ( expr expr FORMAT JSON,'$.jsonpath ERROR NULL DEFAULT xxx ON ERROR COLUMNS ( colname1 datatype EXISTS PATH '$.jsonpath ERROR NULL DEFAULT xxx ON ERROR, colname2 datatype FORMAT JSON jsonquerywrapper PATH '$.jsonpath ERROR NULL DEFAULT xxx ON ERROR, colname3 datatype PATH '$.jsonpath ERROR NULL DEFAULT xxx ON ERROR, NESTED PATH '$.jsonpath' COLUMNS (...), colname4 FOR ORDINALITY ) 24

使用 JSON_TABLE 查询 select dname,ename,job,sal from deptj, json_table(dept_info,'$.departments' columns (dname varchar2(15) path '$.DNAME',nested path '$.deptemps[*]' columns (ename varchar2(20) path '$.ENAME',job varchar2(20) path '$.JOB',nested path '$.pay' columns (sal number path '$.SAL') ) )); DNAME ENAME JOB SAL ------------ ------- -------- ---------- ACCOUNTING CLARK MANAGER 2450 ACCOUNTING KING PRESIDENT 5000 **** more **** 25

结束演讲 Oracle 12c 及时的对 JSON 进行了支持, 并非常有用 相信很快 JSON 就会被得到应用 JSON 是 : 与 AJAX 相互的一种最常见的机制 成为网络服务数据最常见的机制 ( 尤其是基于服务的 REST/HTTP API ) 几种 大数据 数据存储的基石 花费时间来了解 JSON, JSON 句法, 和 Oracle 的实现 26

RMOUG Training Days 2016 2016 年 2 月 9-11 日 ( 周二 - 周四 ) 丹佛会展中心 R 27

COLLABORATE 16 IOUG 论 坛,2016 年 4 月 10-14 日 Mandalay Bay Las Vegas, NV 28

29

请完成会议评估 在 Oracle 12c 中使用 JSON 联系作者 : John King King Training Resources P. O. Box 1780 Scottsdale, AZ 85252 USA 1.800.252.0652-1.303.798.5727 Email: john@kingtraining.com 感谢收听 可在该网站查看今天的幻灯片和例子 : 30

结束 31