Как добавить фиктивную запись в Oracle json_arrayagg - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть простая 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"
        }]
    }

1 Ответ

0 голосов
/ 09 апреля 2020

Я бы порекомендовал вам просто ОБЪЕДИНИТЬ ВСЕ свои фиктивные данные перед тем, как вы выполните JSON преобразование

Например, возьмите это:

from  CASINO.CLIENTTYPES ct

И сделайте это

from (
  select systemcode, code, name from casino.clienttypes    
  union all
  select 'x', -1, 'dummy name' from dual
) ct

Если вы хотите, чтобы код говорил "фиктивный код", вам нужно сделать TO_CHAR для вашего фактического числового c кода из таблицы типов клиентов, например, TO_CHAR(code) as code

...