В Oracle Database, JSON_ARRAY()
функцията създава JSON масив от поредица от SQL скаларни изрази или един екземпляр от тип колекция, VARRAY
или NESTED TABLE
.
Синтаксис
Синтаксисът е така:
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] )
Къде:
expr
е всеки SQL израз, който се оценява на JSON обект, JSON масив, числов литерал, текстов литерал, дата, времеви печат илиnull
.FORMAT JSON
показва, че входният низ е JSON и следователно няма да бъде в кавички в изхода.JSON_on_null_clause
определя поведението, което да се използва, когатоexpr
съдържа нулева стойност (т.е. или включете нулеви стойности в изхода, или не).JSON_returning_clause
определя типа на връщаната стойност.STRICT
проверява дали изходът на функцията за генериране на JSON е правилен JSON. Ако проверката не успее, се появява синтактична грешка.
Пример
Ето пример, за да демонстрирате как работи:
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;
Резултат:
[1,2,3]
Вложено
Можете също да вложите JSON_ARRAY()
функции в друг JSON_ARRAY()
функция:
SELECT JSON_ARRAY(
JSON_ARRAY(1, 2, 3),
JSON_ARRAY(4, 5, 6)
)
FROM DUAL;
Резултат:
[[1,2,3],[4,5,6]]
FORMAT JSON
Клауза
Можете да използвате FORMAT JSON
клауза, която показва, че входният низ е JSON и следователно не трябва да се цитира в изхода.
Ето пример за демонстрация:
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL;
Резултат:
R1 R2 ________________ ____________ ["{\"a\":1}"] [{"a":1}]
Нулеви стойности
Можете да укажете дали нулеви стойности са включени или не в получения масив.
За да ги включите, използвайте NULL ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL;
Резултат:
[1,null,3]
За да ги изключите, използвайте ABSENT ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL;
Резултат:
[1,3]
ABSENT ON NULL
е по подразбиране.
Вижте документацията на Oracle за по-подробно обяснение на тази функция.