Oracle 12c中的SQL/JSON函式

jelephant發表於2016-12-09

本文提供了Oracle Database 12c2版(12.2)中引入的SQL / JSON函式的示例。

建立測試表及資料

本文中的示例使用以下表:

Oracle 12c中的SQL/JSON函式

Oracle 12c中的SQL/JSON函式
JSON_OBJECT
函式

JSON_OBJECT函式將逗號分隔的鍵值對列表轉換為JSON中的物件成員。

Oracle 12c中的SQL/JSON函式
JSON_OBJECTAGG聚合函式

JSON_OBJECTAGG聚合函式建立一個JSON物件,其中包含通過聚合每行中的鍵值對形成的物件成員列表。

Oracle 12c中的SQL/JSON函式
JSON_ARRAY函式

JSON_ARRAY函式將以逗號分隔的表示式列表轉換為JSON陣列。

Oracle 12c中的SQL/JSON函式
JSON_ARRAYAGG聚合函式

JSON_ARRAYAGG聚合函式類似於LISTAGG函式,將每行的表示式聚合到單個JSON陣列中。

Oracle 12c中的SQL/JSON函式
複雜的JSON 物件

每個函式呼叫本身可以是一個表示式,所以他們可以很容易地組合建立複雜的JSON物件。

Oracle 12c中的SQL/JSON函式

Oracle 12c中的SQL/JSON函式

如果我們將JSON格式化,我們可以看到更好的結構。 

Oracle 12c中的SQL/JSON函式

Oracle 12c中的SQL/JSON函式
處理NULL

所有的SQL /JSON函式都具有確定如何處理空值的能力。預設值為NULL ON NULL,但這可以更改為ABSENT ON NULL

Oracle 12c中的SQL/JSON函式

Oracle 12c中的SQL/JSON函式
RETURNING子句

SQL /JSON函式可以可選地包括RETURNING子句,以指定如何返回值。所有返回都可能使用BYTECHAR指定的不同大小的VARCHAR2值。除JSON_OBJECT函式外,所有函式都可以選擇以CLOB格式返回其輸出。

Oracle 12c中的SQL/JSON函式
文件預設返回型別為VARCHAR24000)。

FORMAT JSON子句

FORMATJSON子句是可選的,用於語義清晰度

Oracle 12c中的SQL/JSON函式
使用數字做為Key

SQL /JSON函式不接受數字作為Key

Oracle 12c中的SQL/JSON函式
 
 如果你需要強制他們使用,只需使用TO_CHAR函式將它們轉換為字串。

Oracle 12c中的SQL/JSON函式


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29337971/viewspace-2130196/,如需轉載,請註明出處,否則將追究法律責任。

相關文章