Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hàm JSON_ARRAY () trong Oracle

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ặc null .
  • 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 khi expr 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để trả về số giây trước nửa đêm trong cơ sở dữ liệu Oracle

  2. Hàm CHARTOROWID () trong Oracle

  3. Sao chép dữ liệu từ tệp vào CLOB trong Oracle

  4. Làm cách nào để ứng dụng Java của tôi tự nhận dạng với Oracle khi kết nối?

  5. in ngày bắt đầu và ngày kết thúc trong một hàng cho các phạm vi ngày liên tục hoặc trùng lặp trong SQL tiên tri