Oracle JSON_OBJECT NULL ON NULL 子句不起作用

2023-12-07

我正在尝试让 Oracle 生成 JSONnullSQL 上的值NULL数据,如下:

select 
  json_object(key 'a' value 1, key 'b' value null null on null)   c1, 
  json_object(key 'a' value 1, key 'b' value null absent on null) c2
from dual;

Or also:

select 
  json_object(key 'a' value a, key 'b' value b null on null)   c1, 
  json_object(key 'a' value a, key 'b' value b absent on null) c2
from (
  select 1 a, null b
  from dual
) t;

不幸的是,这两个查询都会导致:

|C1        |C2        |
|----------|----------|
|{"a":1}   |{"a":1}   |

我本来期望的是这样的:

|C1                 |C2        |
|-------------------|----------|
|{"a":1,"b":null}   |{"a":1}   |

我缺少什么?我正在使用 Oracle XE 18c


Oracle 的处理方式似乎存在错误JSON_OBJECT它将从最后一个参数中获取参数JSON_on_null_clause在声明中并将其应用于所有JSON_OBJECT表达式:

CREATE TABLE t ( a,b ) AS
  SELECT 1, null FROM DUAL UNION ALL
  SELECT 2, 'bb' FROM DUAL;

如果你这样做:

select json_object(
         KEY 'a' VALUE a,
         KEY 'b' VALUE b null on null
       ) c1,
       json_object(
         KEY 'a' VALUE a,
         KEY 'b' VALUE b absent on null
       ) c2
from   t;

那么输出是:



C1               | C2              
:--------------- | :---------------
{"a":1}          | {"a":1}         
{"a":2,"b":"bb"} | {"a":2,"b":"bb"}
  

如果您使用相反的表达式执行相同的查询:

select json_object(
         KEY 'a' VALUE a,
         KEY 'b' VALUE b absent on null
       ) c2,
       json_object(
         KEY 'a' VALUE a,
         KEY 'b' VALUE b null on null
       ) c1
from   t;

那么输出是:



C2               | C1              
:--------------- | :---------------
{"a":1,"b":null} | {"a":1,"b":null}
{"a":2,"b":"bb"} | {"a":2,"b":"bb"}
  

数据库小提琴here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle JSON_OBJECT NULL ON NULL 子句不起作用 的相关文章

随机推荐

  • 在 Twig 上执行闭包

    我正在尝试执行驻留在 Twig 模板上的数组内的闭包 您可以在下面找到我正在尝试的简化片段 Symfony controller funcs array conditional gt function obj return obj gt g
  • 字段列表中的未知列

    我正在尝试使用 Pascal 向 MySQL 插入一些信息 但是当我运行该程序时出现错误 字段列表中未知列 mohsen 这是我的代码 procedure TForm1 Button1Click Sender TObject var aSQ
  • 具有共享变量(值)的 Python 多处理 Pool.apply_async

    对于我的大学项目 我正在尝试开发一个基于 python 的流量生成器 我在 vmware 上创建了 2 台 CentOS 机器 我使用 1 台作为我的客户端 1 台作为我的服务器机器 我用过IP 别名仅使用单个客户端 服务器计算机来增加客户
  • 从长度不等列表的列表创建数据框

    我尝试转换这样的列表 l 1 2 3 17 4 19 5 到一个数据帧 其中每个数字作为索引 列表的位置作为值 例如 19 在第二个列表中 因此我希望得到某一行以 19 作为索引 1 作为值的行 依此类推 我设法得到它 参见下面的锅炉板 但
  • 在间隔内向两条线添加值时,图表移动不流畅

    我正在使用更新样条图来显示每秒变化的线 更改在chartinfo chart events load 中设置 下面是我在实际程序中使用的代码 chartinfo chart events load function powerLine th
  • 在 Mac Excel 2011 中从 Mysql DB 获取数据的 VBA 代码

    我在 Windows 中使用 ADODB 代码从 Mysql 数据库获取数据 并且工作正常 但是 我似乎无法让我的 Excel 工作簿 使用 ADODB 与 Excel Mac 2011 一起使用 经过大量谷歌搜索 我找到了来自 Actua
  • HTTR R,CURL,无法加载 PEM 证书?

    我正在尝试发出 API 请求 并将我的 SSL 证书传递给 GET 的 config 参数 我最初让它工作了几周 但后来不得不重新安装 R 我进行了全新安装 删除了所有文件夹 安装了 R RTools RStudio 在这个新的 R 实例中
  • 在哪里可以找到权威的 Selenium WebDriver 与 Firefox 兼容性表? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我在各种平台上使用 Selenium Java 和 Firefox Web Driver 参与过许多项目 我一次又一次地遇到我们使用的 Seleni
  • 在 R 中,在字符串中将大写字母切换为小写字母,反之亦然

    我对功能很熟悉toupper and tolower 但这并不完全给出我想要的东西 这是我拥有的字符串和我想要的字符串的示例 this This is the string THAT I have that tHIS IS THE STRI
  • cherry-pick 命令是否会生成同一提交的不同哈希码?

    我对樱桃采摘不太了解 只需要清除cherry pick命令在不同分支中生成相同提交的不同哈希代码 实际上 我正在挑选不同分支中的哈希码 在这里我注意到它正在生成现有提交的不同哈希代码 是它的工作流程还是这里存在任何问题 提交哈希不仅基于提交
  • 变量不会在颤动中动态更改文本

    我已经定义了我的应用程序 并且通过了counter变量作为构造函数 如下所示 class AppThreePlusThree extends StatelessWidget override Widget build BuildContex
  • 用PHP将EXIF写入JPG

    几天来 我尝试使用 PHP 在 JPG 图像中写入 或更新 EXIF 信息 地理标记 纬度和经度 在咨询了很多网站但没有成功之后 我认为最好的选择是使用Imagick 但是虽然我似乎可以使用setImageProperty 设置纬度和经度
  • rand() 返回相同的数字[重复]

    这个问题在这里已经有答案了 我正在使用 rand 在 C 中制作一个简单的示例 但尽管我使用 srand 但该函数始终返回相同的数字 这是代码 include
  • Angular:为组件字段提供对服务功能的引用并从模板调用它,但未按预期工作

    在我的 Plunker 里 修改的英雄之旅来自官方文档的应用程序 我在hero service doHeroesExist boolean console log doHeroesExist called this heroesExist
  • 如何使用 PHP 或 Ruby 从图像中删除某些颜色?

    假设有 3 个圆圈 红 蓝 黑 我只希望保留黑色圆圈 如何去除红色和蓝色圆圈 既然您要求 PHP 解决方案 首先加载你的图片图像从png创建或其他图像格式的类似功能 然后 使用imagesx and imagesy来获取图像的大小 现在 您
  • 如何使用CSS将子div居中对齐父div内?

    我是 html 和 css 新手 我不知道如何在父 div 内居中对齐子 div 这是我的代码 请回答并解决我的问题 CSS page position relative width 1220px height 670px backgrou
  • Flutter apk已安装但无法找到/打开

    我花了几周的时间试图解决这个问题 但我无法让它发挥作用 Context 颤振运行 我可以执行 flutter run 它将在我的手机上启动该应用程序 关闭应用程序后 我在应用程序页面中看不到它 我无法搜索它 访问 应用程序的唯一方法是转到设
  • 你能在 kivy 文件中换行吗?

    我的 kv 中有几行 文件非常长 80多个字符 我想知道是否有办法在下一行包装 继续它们 例如 我该如何从这个 Line points self pos 0 5 self pos 1 2 self pos 0 self width 5 se
  • Win32 - 从 C 代码回溯

    我目前正在寻找一种在 Windows 下从 C 代码 非 C 获取回溯信息的方法 我正在构建一个跨平台 C 库 具有引用计数内存管理功能 它还具有集成的内存调试器 可提供有关内存错误的信息 XEOS C 基础库 当发生故障时 启动调试器 提
  • Oracle JSON_OBJECT NULL ON NULL 子句不起作用

    我正在尝试让 Oracle 生成 JSONnullSQL 上的值NULL数据 如下 select json object key a value 1 key b value null null on null c1 json object