Oracle/PL/SQL奇技淫巧之Json转表
在Oracle中,有些时候我们需要在一个json文档中查数据
这个时候我们可以通过JSON_TABLE
函数来把 json文档 提取成一张可以执行正常查询操作的表
先看JSON_TABLE
函数的基础用法:
JSON_TABLE(json_data, '$.json_path' COLUMNS (column_definitions))
其中:
json_data
:要从中提取数据的 JSON文档 或 JSON列
$.json_path
:JSON路径表达式,该表达式指定要提取的数据的位置
COLUMNS子句
:定义要从JSON数据中提取的列,每个列定义都应该包括列名、数据类型和JSON路径表达式,以指定数据在JSON文档中的位置。
例:
SELECT *
FROM JSON_TABLE('{"name": "John", "age": 30, "city": "New York"}','$' COLUMNS (name VARCHAR2(50) PATH '$.name_',age NUMBER PATH '$.age_',city VARCHAR2(50) PATH '$.city_'));
这里的json_data
='{"name": "John", "age": 30, "city": "New York"}'
$
的含义是从JSON文档的根路径提取数据
COLUMNS子句
表示将从JSON文档中提取name_
、age_
、city_
这三列数据分别放入name
、age
、city
列中
注意()
中的$
表示的路径是基于COLUMNS
前面指定的那个路径,这里是$.$
函数的结果将是一个包含三列的表:name
、age
、city
,其中包含从JSON文档中提取的相应值。
如果JSON文档是一个JSON数组呢?
例如有这样一个json_list文档:
[{"count": "2","items": [{"key": "keyOne","value": "valueOne"},{"key": "keyTwo","value": "valueTwo"}]}
]
虽然里面只有一个JSON对象,但是这个JSON文档是一个JSON数组,用[]
包起来的
看看怎么解析它:
json_table(json_list, '$[*]' columns (colum_1 VARCHAR2(20) PATH '$.count',colum_2 VARCHAR2(1000) FORMAT JSON PATH '$.count'));
$[*]
的含义是从JSON数组[]
里面提取数据,*
表示所有元素
COLUMNS子句
表示将从JSON文档中提取count
、count
这两列数据分别放入colum_1
、colum_2
列中
注意columns ()
中的$
表示的路径是基于COLUMNS
前面指定的那个路径,在这里就是$[*].$
函数的结果将是一个包含两列的表:colum_1
、colum_2
路径格式:
- 取所有元素:
$[*]
,表示取所有元素;- 取指定单个元素:如
'$[0]'
,表示取第一个元素;- 取指定多个元素:如
$[0, 2, 4]
,表示取第一、三、五个元素;- 取范围连续元素:如
$[0 TO 2]
,表示取第一到第三个元素;如果不指定元素,如
$[]
,则会报错
相关文章:

Oracle/PL/SQL奇技淫巧之Json转表
在Oracle中,有些时候我们需要在一个json文档中查数据 这个时候我们可以通过JSON_TABLE函数来把 json文档 提取成一张可以执行正常查询操作的表 先看JSON_TABLE函数的基础用法: JSON_TABLE(json_data, $.json_path COLUMNS (column_definitions))其中&a…...

每日一学——网络安全
网络安全设计、原则、审计等知识点的精讲如下: 网络安全设计与原则: 网络安全设计是指在系统或网络的设计过程中考虑到安全性,并采取相应的安全措施来保护系统或网络不受威胁。安全设计原则包括最小权限原则(Least Privilege Prin…...

python中的lstm:介绍和基本使用方法
python中的lstm:介绍和基本使用方法 未使用插件 LSTM(Long Short-Term Memory)是一种循环神经网络(RNN)的变体,专门用于处理序列数据。LSTM 可以记忆序列中的长期依赖关系,这使得它非常适合于各…...

【Flink】Flink窗口触发器
数据进入到窗口的时候,窗口是否触发后续的计算由窗口触发器决定,每种类型的窗口都有对应的窗口触发机制。WindowAssigner 默认的 Trigger通常可解决大多数的情况。我们通常使用方式如下,调用trigger()方法把我们想执行触发器传递进去: SingleOutputStreamOperator<Produ…...

深度云化时代,什么样的云网络才是企业的“心头好”?
科技云报道原创。 近年来企业上云的快速推进,对云网络提出了更多需求。 最初,云网络只是满足互联网业务公网接入。 随着移动互联网的发展,企业对云上网络安全隔离能力和互访能力、企业数据中心与云上网络互联、构建混合云的能力࿰…...

【快应用】快应用广告学习之激励视频广告
【关键词】 快应用、激励视频广告、广告接入 【介绍】 一、关于激励视频广告 定义:用户通过观看完整的视频广告,获得应用内相关的奖励。适用场景:游戏/快游戏的通关、继续机会、道具获取、积分等场景中,阅读、影音等应用的权益体系…...

国产化系统中遇到的视频花屏、卡顿以及延迟问题的记录与总结
目录 1、国产化系统概述 1.1、国产化操作系统与国产化CPU 1.2、国产化服务器操作系统 1.3、当前国产化系统的主流配置 2、视频解码花屏与卡顿问题 2.1、视频解码花屏 2.2、视频解码卡顿 2.3、关于I帧和P帧的说明 3、国产显卡处理速度慢导致图像卡顿问题 3.1、视频延…...

go内存管理机制
golang内存管理基本是参考tcmalloc来进行的。go内存管理本质上是一个内存池,只不过内部做了很多优化:自动伸缩内存池大小,合理切割内存块。 基本概念: Page:页,一块 8 K大小的内存空间。Go向操作系统申请和…...

【Python】Web学习笔记_flask(5)——会话cookie对象
HTTP是无状态协议,一次请求响应结束后,服务器不会留下对方信息,对于大部分web程序来说,是不方便的,所以有了cookie技术,通过在请求和响应保温中添加cookie数据来保存客户端的状态。 html代码: …...

用友U8+CRM 任意文件上传+读取漏洞复现
0x01 产品简介 用友U8 CRM客户关系管理系统是一款专业的企业级CRM软件,旨在帮助企业高效管理客户关系、提升销售业绩和提供优质的客户服务。 0x02 漏洞概述 用友 U8 CRM客户关系管理系统 getemaildata.php 文件存在任意文件上传和任意文件读取漏洞,攻击…...

【量化课程】08_1.机器学习量化策略基础实战
文章目录 1. 常用机器学习模型1.1 回归模型1.2 分类模型1.2.1 SVC介绍1.2.2 SVC在量化策略中的应用 2. 机器学习量化策略实现的基本步骤3. 策略实现 1. 常用机器学习模型 1.1 回归模型 线性回归多层感知器回归自适应提升树回归随机森林回归 1.2 分类模型 线性分类支持向量机…...

Mongodb 更新集合的方法到底有几种 (中) ?
更新方法 Mongodb 使用以下几种方法来更新文档 , Mongodb V5.0 使用 mongosh 客户端: db.collection.updateOne(<filter>, <update>, <options>) db.collection.updateMany(<filter>, <update>, <options>) db.c…...

预演攻击:谁需要网络靶场,何时需要
"网络演习 "和 "网络靶场 "几乎是当今信息安全领域最流行的词汇。与专业术语不同的是,这些词对于企业和高级管理人员来说早已耳熟能详:法律要求他们进行演习,包括网络演习,而网络射击场也经常在企业界和媒体上…...

【Linux】IO多路转接——poll接口
目录 poll初识 poll函数 poll服务器 poll的优点 poll的缺点 poll初识 poll也是系统提供的一个多路转接接口。 poll系统调用也可以让我们的程序同时监视多个文件描述符上的事件是否就绪,和select的定位是一样的,适用场景也是一样的。 poll函数 po…...

系统架构设计师---OSI七层协议
目录 OSI七层协议 各层主要功能和详细说明 Internet协议的主要协议及其层次关系...

Next.js - Route Groups(路由组)
路由组的作用 在应用程序目录中,嵌套文件夹通常会映射到 URL 路径。不过,您可以将文件夹标记为路由组,以防止该文件夹包含在路由的 URL 路径中。 这样就可以在不影响 URL 路径结构的情况下,将路由段和项目文件组织到逻辑组中。 …...

musl libc ldso 动态加载研究笔记:01
前言 musl 是一个轻量级的标准C库,建立在系统调用之上,可以认为是【用户态】的C 库,与 glibc 或者 uClibc 属于同一类。 基于 musl 的 gcc 工具链包括交叉编译工具链,可以用于编译 Linux 或者其他的操作系统,如当前 L…...

2023 年 4 款适用于安卓手机的最佳 PDF 转 Word 转换器
尝试在 Android 上将 PDF 文档转换为 Word 文件?好吧,您可能会发现要让它发挥作用几乎是不可能的,至少在没有任何额外工具的情况下是这样。Web 上有用于此类转换的选项,但本地不一定会发生任何情况(可能除了一个应用程…...

前端:运用html+css+jquery.js实现截图游戏
前端:运用htmlcssjquery.js实现截图游戏 1. 前言2. 实现原理3. 参考代码和运行结果 1. 前言 最近在刷手机视频时,总是能刷到一个这样的视频,视频上是一个截图游戏,当图片上的某个片段正好在图片的正确位置时,暂停视频,…...

Maven之JDK编译问题
IDEA Maven 默认使用 JDK 1.5 编译问题 IDEA 在「调用」maven 时,IDEA 默认都会采用 JDK 1.5 编译,不管你安装的 JDK 版本是 JDK 7 还是 JDK 8 或者更高。这样一来非常不方便,尤其是时不时使用 JDK 7/8 的新特性时。如果使用新特性ÿ…...

开发测试框架一 - 创建springboot工程及基础操作
一、创建及运行方式 1. 从官网导入: 注意:由于我的java版本是1.8;所以选中了spring2.7.14;如果你的java版本是9及以上,选中spring3相关的同时Java 版本也要对应起来 2. 创建第一个get请求 创建Controller package及…...

【IMX6ULL驱动开发学习】08.马达驱动实战:驱动编写、手动注册平台设备和设备树添加节点信息
目录 一、使用设备树 1.1 修改设备树流程 二、手动创建平台设备 三、总结(附驱动程序) 前情提要:【IMX6ULL驱动开发学习】07.驱动程序分离的思想之平台总线设备驱动模型和设备树_阿龙还在写代码的博客-CSDN博客 手动注册…...

直方图均衡化和自适应直方图均衡化
前言: Hello大家好,我是Dream。 均衡化是数字图像处理中常用的一种技术,用于增强图像的视觉效果和对比度。,今天我们将实现对同一张图像的直方图均衡化和自适应直方图均衡化处理,学习一下两者的的基本原理和实现过程&a…...

京东门详一码多端探索与实践 | 京东云技术团队
本文主要讲述京东门详业务在支撑过程中遇到的困境,面对问题我们在效率提升、质量保障等方向的探索和实践,在此将实践过程中问题解决的思路和方案与大家一起分享,也希望能给大家带来一些新的启发 一、背景 1.1、京东门详介绍 1.1.1、京东门…...

数据挖掘 | 零代码采集房源数据,支持自动翻页、数据排重等
1 前言 城市规划、商业选址等应用场景中经常会对地区房价、地域价值进行数据分析,其中地区楼盘房价是分析数据中重要的信息参考点,一些互联网网站上汇聚了大量房源信息,通过收集此类数据,能够对地区房价的分析提供参考依据。 如何…...

迪米特法则
迪米特法则,也称为最少知识原则(Law of Demeter),是面向对象设计中的一个原则,旨在降低对象之间的耦合性,提高系统的可维护性和可扩展性。该原则强调一个类不应该直接与其它不相关的类相互交互,…...

云积天赫|AIGC+营销的排头兵
AIGC生成式人工智能,正逐渐成为人们关注的焦点。AIGC的出现,标志着人工智能已经进入了一个全新的时代。AIGC的出现,也为营销行业带来了新的活力。那么企业该怎么利用这次AIGC浪潮,成为AIGC营销的排头兵呢? “…...

Oracle 数据库备份
1、使用管理员账号创建对应的directory目录 登录数据库 sqlplus / as sysdba 创建directory create or replace directory dumpdir as F:\container; 2、给用户赋予使用该目录的权限 grant read,write on directory dumpdir to Scott; 查看创建的目录位置 select * fro…...

【C++】模板template
🔥🔥 欢迎来到小林的博客!! 🛰️博客主页:✈️林 子 🛰️博客专栏:✈️ C 🛰️社区 :✈️ 进步学堂 🛰️欢…...

智能工厂:适应不断变化的制造世界
制造业已经从过去传统的装配线工艺流程中走了很长一段路。随着技术的进步和工业 4.0 的兴起,制造业正在迅速发展,以满足现代世界不断变化的需求。近年来出现的一个关键概念就是“智能工厂”。在这篇文章中,我们将探讨什么是智能工厂、它是如何…...