当前位置: 首页 > news >正文

将oracle表字段json字符串分解提取并返回单列表

将oracle表字段json字符串分解提取并返回单列表

oracle 版本

11gR2(11.2.0.4.0)

原始表字段内容


{"FRAME_INFO": ["0,0,-1,1800,1800,5992,191,20","1,0,-1,2000,1800,5992,188,20","2,0,-1,1800,1800,5992,182,20","3,0,-1,1800,1800,5992,177,20","4,0,-1,3700,1800,6005,171,20","5,0,-1,19200,1800,5992,167,20","6,0,-1,12000,1800,6005,163,20","7,0,-1,6200,1800,6005,159,20","8,0,-1,4700,1800,6005,154,20","9,0,-1,9900,1800,6005,150,20","10,0,-1,6500,1800,5992,147,20"],"PLAY_IDX": ["0,4,6,4","1,4,6,4","2,5,6,5","3,5,6,5","4,5,7,5","5,5,7,5","6,6,7,5","7,6,8,5","8,6,8,5","9,6,8,6","10,7,8,6","5,5,7,5"],"IRV_NUM": 11,"VI_NUM": 13,"OVA_NUM": 15,"OVB_NUM": 0,"IRV_DIR": "20250708000540_1_CRH2A-2229_720_0_B","VI_DIR": "20250708000540_2_CRH2A-2229_720_0_B_M","OVA_DIR": "20250708000540_3_CRH2A-2229_720_0_B","OVB_DIR": "20250708000540_4_CRH2A-2229_720_0_B","START_IDX": 1,"FAULT_IDX": 5,"VI_IDX": 5,"OVA_IDX": 7,"OVB_IDX": 5,"FLAG": [0,0,0,0]
}

需求是将FRAME_INFO部分每行提取出来

提取FRAME_INFO部分


regexp_substr(a.svalue3, '"FRAME_INFO":[^]]+'

提取每一行


TABLE( --CAST( --  MULTISET --(SELECT regexp_substr(regexp_substr(a.svalue3, '"FRAME_INFO":[^]]+'), '\d[^"]+', 1, LEVEL)FROM dualCONNECT BY regexp_substr(regexp_substr(a.svalue3, '"FRAME_INFO":[^]]+'), '\d[^"]+', 1, LEVEL) IS NOT NULL --   ) --AS SYS.ODCIVARCHAR2LIST)) t

实现完整SQL


SELECT ID, t.* --regexp_substr(regexp_substr(a.svalue3, '"FRAME_INFO":[^]]+'), '\d[^"]+', 1, 3)   FROM alarm a,TABLE( --CAST( --  MULTISET --(SELECT regexp_substr(regexp_substr(a.svalue3, '"FRAME_INFO":[^]]+'), '\d[^"]+', 1, LEVEL)FROM dualCONNECT BY regexp_substr(regexp_substr(a.svalue3, '"FRAME_INFO":[^]]+'), '\d[^"]+', 1, LEVEL) IS NOT NULL --   ) --AS SYS.ODCIVARCHAR2LIST)) tWHERE a.raised_time > TRUNC(SYSDATE)AND a.status = 'AFSTATUS03'AND a.id = 'F060ee2f14b7942d88b01832551a457d2';

验证查询结果

idcolumn_values
F060ee2f14b7942d88b01832551a457d20,0,-1,1800,1800,5992,191,20
F060ee2f14b7942d88b01832551a457d21,0,-1,2000,1800,5992,188,20
F060ee2f14b7942d88b01832551a457d22,0,-1,1800,1800,5992,182,20
F060ee2f14b7942d88b01832551a457d23,0,-1,1800,1800,5992,177,20
F060ee2f14b7942d88b01832551a457d24,0,-1,3700,1800,6005,171,20
F060ee2f14b7942d88b01832551a457d25,0,-1,19200,1800,5992,167,20
F060ee2f14b7942d88b01832551a457d26,0,-1,12000,1800,6005,163,20
F060ee2f14b7942d88b01832551a457d27,0,-1,6200,1800,6005,159,20
F060ee2f14b7942d88b01832551a457d28,0,-1,4700,1800,6005,154,20
F060ee2f14b7942d88b01832551a457d29,0,-1,9900,1800,6005,150,20
F060ee2f14b7942d88b01832551a457d210,0,-1,6500,1800,5992,147,20

结论

关键点分析

http://www.dtcms.com/a/269569.html

相关文章:

  • Redis基础数据结构
  • 深度学习与图像处理 | 基于传统图像处理的自动驾驶车道线检测
  • XSLT注入与安全修复方法
  • 【快手】数据挖掘面试题0002:求某地铁站每日客流量,乘地铁经过、进出站人都包括在内
  • C#随机数生成全面详解:从基础到高级应用
  • 【ROS2 自动驾驶学习】03-ROS2常用命令
  • 网络安全护网实战:攻击手段解析与防御策略
  • 基于odoo17的设计模式详解---工厂模式
  • 阿里云mysql数据丢失,如何通过服务器备份在其他服务器上恢复数据,并获取mysql丢失数据,完成mysql数据恢复
  • Prompt Injection Attack to Tool Selection in LLM Agents
  • 深度剖析:向70岁老系统植入通信芯片——MCP注入构建未来级分布式通信
  • IP 能ping通,服务器是否开机?
  • Go语言反射机制详解
  • 基于ZYNQ7000的AD9226采集卡实现(3、PS LINUX DMA驱动实现)
  • vue3 el-table 行数据沾满格自动换行
  • 【debug】git clone 报错
  • Web前端: :is(通用选择器)
  • 图像轮廓检测与绘制:OpenCV 实战指南
  • claude code-- 基于Claude 4 模型的智能编程工具,重塑你的编程体验
  • 微软上线Deep Research:OpenAI同款智能体,o3+必应双王炸
  • Web后端开发-Mybatis
  • 玩转Docker | 使用Docker部署NotepadMX笔记应用程序
  • UDP的socket编程
  • unity 模型UV重叠问题相关(重新整理)
  • BUUCTF在线评测-练习场-WebCTF习题[GXYCTF2019]BabySQli1-flag获取、解析
  • 无法访问宝塔面板 - 特网科技
  • Coze智能体平台全景解析:从零构建企业级AI应用的实战指南
  • Spring Boot 企业项目技术选型
  • UI前端大数据可视化实战策略:如何设计符合用户认知的数据展示方式?
  • 京东携手HarmonyOS SDK首发家电AR高精摆放功能