JSON_VALUE
JSON_VALUE 函數會使用 SQL/JSON 路徑表示式,從 JSON 文字傳回 SQL 純量值。
- JSON 表示式
- 傳回內建字串資料類型的值的表示式。 如果傳回字元或圖形值,則必須包含正確格式化的 JSON 資料。 如果它是二進位資料類型,則會根據明確或隱含的 FORMAT 子句來解譯。
- FORMAT JSON 或 FORMAT BSON
- 指定如何解譯 JSON 表示式 。
- FORMAT JSON
- JSON 表示式 包含 JSON 資料。 如果 JSON 表示式 是二進位資料,則資料會解譯為 UTF-8 或 UTF-16。 二進位資料無法使用 EBCDIC CCSID 進行編碼。
- FORMAT BSON
- JSON 表示式 包含 JSON 資料的 BSON 表示法。 指定 FORMAT BSON 時, JSON 表示式 必須是二進位字串資料類型。
- sql-json-path-expression
- 傳回內建字元或圖形字串資料類型的值的表示式。 字串會解譯為 SQL/JSON 路徑表示式,並用來在 JSON-expression指定的 JSON 資料內尋找 JSON 值。 如果多個值具有相同的索引鍵,則會選取其中一個 JSON 值。
- AS path-name
- 指定用來識別 sql-json-path-expression的名稱。
- 傳回 資料類型
- 指定結果的資料類型。 對於 CHAR 及 VARCHAR 結果, CCSID 不能是 65535。 以下說明結果資料類型轉換的其他規則: 表 1
- 在空的
- 指定使用 sql-json-path-expression找到空序列時的行為。
- 空白時為空值
- 所傳回的為空數。 這是預設值。
- 空白時發生錯誤
- 系統會傳回錯誤。
- DEFAULT default-expression ON EMPTY
- 會傳回 default-expression 指定的值。 表示式必須是與結果資料類型相容的指派。
- 發生錯誤時
- 指定 JSON_VALUE 發生錯誤時的行為。
- 錯誤時為空值
- 所傳回的為空數。 這是預設值。
- 錯誤時發生錯誤
- 系統會傳回錯誤。
- DEFAULT default-expression ON ERROR
- 會傳回 default-expression 指定的值。 表示式必須是與結果資料類型相容的指派。
結果可以是空值。 如果 JSON 表示式 是空值,則結果是空值。
範例
- 從 JSON 文字傳回整數值。
結果為 987。VALUES (JSON_VALUE('{"id":"987"}', '$.id' RETURNING INTEGER));
- 嘗試從屬於陣列值的 JSON 文字傳回值。 透過傳回預設字串來處理任何錯誤。
結果是 Not found ,因為對應於 friends 索引鍵的值是陣列,而不是純量值。VALUES (JSON_VALUE('{"friends":["John","Lisa"]}', 'strict $.friends' DEFAULT 'Not found' ON ERROR));