返回顶部
首页 > 资讯 > 数据库 >Oracle Database 19c 中的 JSON_OBJECT 函数的增强功能
  • 233
分享到

Oracle Database 19c 中的 JSON_OBJECT 函数的增强功能

2024-04-02 19:04:59 233人浏览 薄情痞子
摘要

本文讲述oracle Database 19c 中的 JSON_OBJECT 函数的增强功能。 1、初始化 本文中的示例使用 SCOTT模式中的 DEPT表,如下: -- DROP&n

本文讲述oracle Database 19c 中的 JSON_OBJECT 函数的增强功能。

1、初始化

本文中的示例使用 SCOTT模式中的 DEPT表,如下:

-- DROP TABLE DEPT PURGE;
CREATE TABLE DEPT (
  DEPTNO NUMBER(2) CONSTRaiNT PK_DEPT PRIMARY KEY,
  DNAME VARCHAR2(14),
  LOC VARCHAR2(13)
);
INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30,'SALES','CHICAGo');
INSERT INTO DEPT VALUES (40,'OPERATioNS','BOSTON');
COMMIT;

2、通配符

通配符“*”可用作 jsON_OBJECT 函数的输入,以在单个步骤中引用所有列。使用列名作为键,将每列转换为键:key:value。

SELECT JSON_OBJECT(*) AS json_data
FROM   dept;
JSON_DATA
-------------------------------------------------------
{"DEPTNO":10,"DNAME":"ACCOUNTING","LOC":"NEW YORK"}
{"DEPTNO":20,"DNAME":"RESEARCH","LOC":"DALLAS"}
{"DEPTNO":30,"DNAME":"SALES","LOC":"CHICAGO"}
{"DEPTNO":40,"DNAME":"OPERATIONS","LOC":"BOSTON"}
sql>

通配符也可以是表或视图别名的前缀。

SELECT JSON_OBJECT(a.*) AS json_data
FROM   dept a;
JSON_DATA
-------------------------------------------------------
{"DEPTNO":10,"DNAME":"ACCOUNTING","LOC":"NEW YORK"}
{"DEPTNO":20,"DNAME":"RESEARCH","LOC":"DALLAS"}
{"DEPTNO":30,"DNAME":"SALES","LOC":"CHICAGO"}
{"DEPTNO":40,"DNAME":"OPERATIONS","LOC":"BOSTON"}
SQL>

3、列列表

可以将逗号分隔的列列表指定为 JSON_OBJECT 函数的输入。在查询中使用的情况下,键名与列表中的列名匹配。以下查询使用小写的列名称,因此输出的键字是小写的。

SELECT JSON_OBJECT(deptno, dname) AS json_data
FROM   dept;
JSON_DATA
-------------------------------------------------------
{"deptno":10,"dname":"ACCOUNTING"}
{"deptno":20,"dname":"RESEARCH"}
{"deptno":30,"dname":"SALES"}
{"deptno":40,"dname":"OPERATIONS"}
SQL>

在以下示例中,列名称是首字段大写,因此键名称在输出中也是首字母大写。

SELECT JSON_OBJECT(Deptno, Dname) AS json_data
FROM   dept;
JSON_DATA
-------------------------------------------------------
{"Deptno":10,"Dname":"ACCOUNTING"}
{"Deptno":20,"Dname":"RESEARCH"}
{"Deptno":30,"Dname":"SALES"}
{"Deptno":40,"Dname":"OPERATIONS"}
SQL>

4、键值(Key-Value)定义

在以前的版本中,键值对以两种方式之一定义,使用KEY和VALUE关键字,或省略KEY关键字,以下所示:

SELECT JSON_OBJECT(KEY 'deptno' VALUE deptno,
                   KEY 'dname' VALUE dname) AS json_data
FROM   dept;
SELECT JSON_OBJECT('deptno' VALUE deptno,
                   'dname' VALUE dname) AS json_data

在Oracle 19c中,有一个更短的选项,用“:”代替VALUE关键字。

SELECT JSON_OBJECT('deptno' : deptno,
                   'dname' : dname) AS json_data
FROM   dept;
JSON_DATA
-------------------------------------------------------
{"deptno":10,"dname":"ACCOUNTING"}
{"deptno":20,"dname":"RESEARCH"}
{"deptno":30,"dname":"SALES"}
{"deptno":40,"dname":"OPERATIONS"}
SQL>

5、列别名

您不能在  JSON_OBJECT  函数调用本身中对列进行别名,也不需要这样做,但可以在  WITH  子 句或内联视图中进行别名。

WITH converted_data AS (
  SELECT deptno AS "deptnoCol",
         dname AS "dnameCol"
  FROM   dept
)
SELECT JSON_OBJECT(a.*) AS json_data
FROM   converted_data a;
JSON_DATA
-------------------------------------------------------
{"deptnoCol":10,"dnameCol":"ACCOUNTING"}
{"deptnoCol":20,"dnameCol":"RESEARCH"}
{"deptnoCol":30,"dnameCol":"SALES"}
{"deptnoCol":40,"dnameCol":"OPERATIONS"}
SQL>SELECT JSON_OBJECT(a.*) AS json_data
FROM   (SELECT deptno AS "deptnoCol",
               dname AS "dnameCol"
        FROM   dept) a;
JSON_DATA
-------------------------------------------------------
{"deptnoCol":10,"dnameCol":"ACCOUNTING"}
{"deptnoCol":20,"dnameCol":"RESEARCH"}
{"deptnoCol":30,"dnameCol":"SALES"}
{"deptnoCol":40,"dnameCol":"OPERATIONS"}
SQL>
您可能感兴趣的文档:

--结束END--

本文标题: Oracle Database 19c 中的 JSON_OBJECT 函数的增强功能

本文链接: https://lsjlt.com/news/46729.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle Database 19c 中的 JSON_OBJECT 函数的增强功能
    本文讲述Oracle Database 19c 中的 JSON_OBJECT 函数的增强功能。 1、初始化 本文中的示例使用 SCOTT模式中的 DEPT表,如下: -- DROP&n...
    99+
    2024-04-02
  • Oracle Database 19c中自动索引的功能介绍
    这篇文章主要介绍“Oracle Database 19c中自动索引的功能介绍”,在日常操作中,相信很多人在Oracle Database 19c中自动索引的功能介绍问题上存在疑惑,小编查阅了各式资料,整理出...
    99+
    2024-04-02
  • es6增强的功能有哪些
    本篇内容介绍了“es6增强的功能有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!es6增强的功能:1、解构赋值,允许按照一定的模式,从数...
    99+
    2023-07-04
  • oracle中replace函数的功能有哪些
    在Oracle中,REPLACE函数的功能是替换字符串中指定的子字符串。它接受三个参数:原字符串、要替换的子字符串和替换后的...
    99+
    2024-04-09
    oracle
  • oracle中lengthb函数的功能有哪些
    在Oracle中,LENGTHB函数是用于计算字符串的字节数的函数。以下是LENGTHB函数的功能: 计算字符串的字节数,而不是...
    99+
    2024-04-22
    oracle
  • oracle中split函数的功能有哪些
    在Oracle中并没有内置的split函数,但是可以使用其他方法来实现类似的功能。以下是一种常见的实现方法: SELECT ...
    99+
    2024-04-20
    oracle
  • oracle中distinct函数的功能有哪些
    在 Oracle 中,DISTINCT 函数用于返回唯一的值,消除重复的行,例如: 用于查询中消除重复的结果集。 可以用于在 SE...
    99+
    2024-04-19
    oracle
  • oracle中tonumber函数的功能有哪些
    在Oracle数据库中,TONUMBER函数的功能是将一个字符串转换为一个数字。它可以将包含数字的字符串转换为对应的数字类型,如整数...
    99+
    2024-05-22
    oracle
  • LeetCode算法如何增强Laravel应用的功能?
    Laravel是一款广受欢迎的PHP框架,它提供了强大的功能和易于使用的API,使得开发人员可以更快速、更高效地开发Web应用程序。但是,在处理复杂的数据结构和算法时,Laravel可能会遇到一些挑战。在这种情况下,LeetCode算法可...
    99+
    2023-08-10
    laravel load leetcode
  • PHP 函数扩展:增强核心功能并满足自定义需求
    php函数扩展允许开发人员提升php的核心功能,并实现定制需求,主要类型有zehir和ndis扩展。通过自定义函数扩展,可以实现类似计算字符串雷文斯坦距离等特定任务。扩展提供扩展核心功能...
    99+
    2024-04-11
    php 函数扩展
  • PHP8中如何通过Attributes增强自定义类的功能?
    PHP8中如何通过Attributes增强自定义类的功能?随着PHP8的发布,引入了新的特性——Attributes(属性)。通过Attributes,开发者可以在类、方法和属性上添加额外的元数据,以增强自定义类的功能和灵活性。在本文中,我...
    99+
    2023-10-24
    PHP Attributes 自定义类功能
  • oracle avg函数的功能有哪些
    Oracle的AVG函数用于计算指定列的平均值。它的功能包括: 计算指定列的平均值。可以用于数值型数据类型,如整数、小数等。AVG...
    99+
    2024-04-15
    oracle
  • 如何理解Python多线程中的三个函数的强大功能
    今天就跟大家聊聊有关如何理解Python多线程中的三个函数的强大功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Python多线程中有三个比较简单的函数,在实际的相关操作中你对这...
    99+
    2023-06-17
  • PHP 函数不断增强的协程特性
    php 协程特性显着增强,提供灵活性、性能和可扩展性。主要好处包括:并行性:允许多任务同时执行。高效性:轻量级,避免性能损失。可扩展性:易于扩展到多核系统。php 中的协程函数包括 fi...
    99+
    2024-05-03
    php 协程
  • php中strlen函数的功能
    strlen 函数返回字符串的长度(字节数),具体用法如下:strlen($string):计算 $string 的长度。对于多字节字符集,一个字符可能由多个字节组成。如果 $strin...
    99+
    2024-04-29
    len函数
  • 使用类型增强功能的方法有哪些
    使用类型增强功能的方法有哪些?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体配置信息配置全局jsconfig.json我们习惯在wepback内配置相关路径别...
    99+
    2023-06-07
  • Eclipse ADT 20 Preview是否继续增强UI的功能
    Eclipse ADT 20 Preview是否继续增强UI的功能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。这个版本主要做了以下改进:修复 Bug,特别是 ...
    99+
    2023-06-17
  • virtualbox6安装centos增强功能的方法是什么
    这篇“virtualbox6安装centos增强功能的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“virtual...
    99+
    2023-06-26
  • Python ChatGPT API 新增的函数调用功能演示
    文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 OpenAI 重磅更新,API...
    99+
    2023-09-03
    ChatGPT Python API 函数调用 人工智能应用 原力计划
  • Oracle中实现类似于Mysql中的Field()函数功能
    目录理论知识1. mysql中的Filed() 函数2. oracle中的Decode()函数3. Oracle中的row_number实战演练Mysql 的 Filed使用Oracle的Decodeoracle的row...
    99+
    2023-06-08
    Oracle中实现实现类似Field()函数 Oracle decode() Oracle row_number
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作