arrays - 如何在 Oracle json_arrayagg 中添加虚拟记录
问题描述
我有一个包含两列的简单 Oracle 数据库表,有这个查询
select
json_object( key 'clientTypes' VALUE
(
select
json_arrayagg( json_object( key 'code' VALUE ct.code, key 'name' VALUE ct.name ) ORDER BY ct.code ASC )
from
CASINO.CLIENTTYPES ct
WHERE
ct.code != 'system'
)
returning clob ) responseJson
FROM
DUAL
结果是带有 CLOB 的单列,其中包含带有嵌套数组的 JSON 对象
{
"list": [{
"code": 1,
"name": "abc"
},
{
"code": 2,
"name": "def"
}]
}
我需要在生成的 JSON 对象中添加单个虚拟记录,如下所示
{
"list": [{
"code": 1,
"name": "abc"
},
{
"code": 2,
"name": "def"
},
{ "code": dummy code,
"name": "dummy name"
}]
}
解决方案
我建议您在进行 JSON 转换之前将所有虚拟数据合并
例如采取这个:
from CASINO.CLIENTTYPES ct
并做到
from (
select systemcode, code, name from casino.clienttypes
union all
select 'x', -1, 'dummy name' from dual
) ct
如果您想让代码说“虚拟代码”,您需要对来自 clienttypes 表的实际数字代码执行 TO_CHAR,例如TO_CHAR(code) as code
推荐阅读
- python - 散点图 y 轴是分开的
- vb.net - 在 Windows.Devices.Bluetooth UWP GattLocalCharacteristic 上引发的 WriteWithoutResponse WriteRequested 事件无序
- python - 使用 RQGIS 链接到 QGIS 时如何修复“ImportError: No module named builtins”?
- python - 如何在使用随机时将子列表与其列表匹配?
- php - 如何从左连接表中获取下拉值
- vue.js - 如何在不调用 vue.js 中的方法的情况下从点击中显示项目?
- python - python selenium 无法定位子元素
- python - 使用 pandas df.query() 过滤分类(间隔)列
- yaml - 在 _config.yml 中创建 pdf 链接的语法是什么
- c++ - C++ 从另一个 C++ 文件“导入”一个枚举类