Trong Cơ sở dữ liệu Oracle, JSON_ARRAY()
hàm tạo một mảng JSON từ một chuỗi các biểu thức vô hướng SQL hoặc một phiên bản kiểu tập hợp, VARRAY
hoặc NESTED TABLE
.
Cú pháp
Cú pháp như sau:
JSON_ARRAY
( expr [ FORMAT JSON ] [, expr [ FORMAT JSON ] ]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ] )
Ở đâu:
-
expr
là bất kỳ biểu thức SQL nào đánh giá thành một đối tượng JSON, một mảng JSON, một ký tự số, một ký tự văn bản, ngày tháng, dấu thời gian hoặcnull
. -
FORMAT JSON
cho biết rằng chuỗi đầu vào là JSON và do đó sẽ không được trích dẫn trong đầu ra. -
JSON_on_null_clause
chỉ định hành vi sẽ sử dụng khiexpr
chứa giá trị null (tức là bao gồm giá trị null trong đầu ra hoặc không). -
JSON_returning_clause
chỉ định loại giá trị trả về. -
STRICT
kiểm tra xem đầu ra của hàm tạo JSON có đúng là JSON hay không. Nếu kiểm tra không thành công, lỗi cú pháp sẽ xuất hiện.
Ví dụ
Dưới đây là một ví dụ để chứng minh cách nó hoạt động:
SELECT JSON_ARRAY(1, 2, 3) FROM DUAL;
Kết quả:
[1,2,3]
lồng nhau
Bạn cũng có thể lồng JSON_ARRAY()
các hàm trong JSON_ARRAY()
khác chức năng:
SELECT JSON_ARRAY(
JSON_ARRAY(1, 2, 3),
JSON_ARRAY(4, 5, 6)
)
FROM DUAL;
Kết quả:
[[1,2,3],[4,5,6]]
FORMAT JSON
Mệnh đề
Bạn có thể sử dụng FORMAT JSON
để chỉ ra rằng chuỗi đầu vào là JSON và do đó không nên được trích dẫn trong đầu ra.
Dưới đây là một ví dụ để chứng minh:
SELECT
JSON_ARRAY('{"a":1}') AS r1,
JSON_ARRAY('{"a":1}' FORMAT JSON) AS r2
FROM DUAL;
Kết quả:
R1 R2 ________________ ____________ ["{\"a\":1}"] [{"a":1}]
Giá trị rỗng
Bạn có thể chỉ định xem các giá trị null có được đưa vào mảng kết quả hay không.
Để bao gồm chúng, hãy sử dụng NULL ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 NULL ON NULL)
FROM DUAL;
Kết quả:
[1,null,3]
Để loại trừ chúng, hãy sử dụng ABSENT ON NULL
:
SELECT
JSON_ARRAY(1, null, 3 ABSENT ON NULL)
FROM DUAL;
Kết quả:
[1,3]
ABSENT ON NULL
là mặc định.
Xem tài liệu của Oracle để có giải thích chi tiết hơn về chức năng này.