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

oracle 23ai json简单使用

创建带json字段的表:

CREATE TABLE test.t_json (
    id NUMBER,
    json_data JSON
);

插入一批数据

DECLARE
BEGIN
  FOR i IN 1..9999 LOOP
    INSERT INTO test.t_json(id, json_data) 
    VALUES (i, JSON('{"name":"张三' || i || '","value":' || i || '}'));
  END LOOP;
  COMMIT;
END;
/

select * from test.t_json;

 查询结果部分值:

       ID JSON_DATA
---------- --------------------------------------------------------------------------------
      9984 {"name":"张三9984","value":9984}
      9985 {"name":"张三9985","value":9985}
      9986 {"name":"张三9986","value":9986}
      9987 {"name":"张三9987","value":9987}
      9988 {"name":"张三9988","value":9988}
      9989 {"name":"张三9989","value":9989}
      9990 {"name":"张三9990","value":9990}
 

查询id为10的,json数据的name键值

SQL> SELECT JSON_VALUE(json_data, '$.name') AS j_name FROM test.t_json WHERE id = 10;  

J_NAME
-----------------------------
张三10
对json_data字段的name键值创建索引

SQL> CREATE INDEX test.idx_name ON test.t_json(JSON_VALUE(json_data, '$.name'));

查看执行计划:

SQL> set autot on;
SQL> SELECT * FROM test.t_json WHERE JSON_VALUE(json_data, '$.name')='张三9984';

        ID JSON_DATA
---------- --------------------------------------------------------------------------------
      9984 {"name":"张三9984","value":9984}


Execution Plan
----------------------------------------------------------
Plan hash value: 2111867144

------------------------------------------------------------------------------------------------
| Id  | Operation                           | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                    |          |     1 |  6117 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID BATCHED| T_JSON   |     1 |  6117 |     2   (0)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN                  | IDX_NAME |     1 |       |     1   (0)| 00:00:01 |
------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access(JSON_VALUE("JSON_DATA" /*+ LOB_BY_VALUE */  FORMAT OSON , '$.name'
              RETURNING VARCHAR2(4000) NULL ON ERROR TYPE(LAX) )='张三9984')

Note
-----
   - dynamic statistics used: dynamic sampling (level=2)


Statistics
----------------------------------------------------------
        130  recursive calls
          0  db block gets
        105  consistent gets
          0  physical reads
          0  redo size
        827  bytes sent via SQL*Net to client
        522  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          9  sorts (memory)
          0  sorts (disk)
          1  rows processed
 

http://www.xdnf.cn/news/13852.html

相关文章:

  • reactive() 和 toRef()
  • 微服务架构中的 Kafka:异步通信与服务解耦(四)
  • 《哈希算法》题集
  • 最新Transformer模型及深度学习前沿技术应用
  • python学习---dayday2
  • 使用文件的基本操作和文件内容读写操作实现三个功能
  • 中间件是微服务架构的支撑工具,微服务是中间件的应用场景之一。
  • 基于PHP的图书商城(vue版)
  • 拨码开关(DIP Switch)原理、参数、选型与应用指南
  • Linux x86_64架构下的四级分页机制详解
  • Cordova移动应用对云端服务器数据库的跨域访问
  • 图像处理与机器学习项目:特征提取、PCA与分类器评估
  • AI基础知识(07):基于 PyTorch 的手写体识别案例手册
  • 一篇文章理解js闭包和作用于原理
  • 【消息队列】——如何使用Actor模型解决并发问题
  • 基于springboot视频及游戏管理系统+源码+文档
  • Python图像处理基础(六)
  • 域名证书自动更新-acme通用版
  • 网络编程之Modbus与HTTP
  • MySQL中InnoDB存储引擎底层原理与MySQL日志机制深入解析
  • 【在线五子棋对战】五、前端扫盲:html css javascript ajax jquery websocket
  • 应用案例丨一键测量300+工件,QM系列闪测仪批量检测
  • 多模态大语言模型arxiv论文略读(119)
  • 爱普生FC-135R晶振在广域网LoRa设备中的应用
  • 达梦数据库中无效触发器的排查与解决方案指南
  • Java Lambda 表达式与 Stream API 全解析:从基础到进阶
  • 短剧小程序开发:开启碎片化娱乐新视界
  • 第 4 篇:线性回归——机器学习“开山第一斧”,用一条直线洞见AI本质
  • 机器学习-黑马笔记
  • Redis缓存三大难题:穿透、击穿、雪崩