Oracle中讀取JSON格式數據實戰指南
隨着大數據、雲計算等技術的快速發展,JSON(JavaScript Object Notation)格式的數據越來越廣泛應用於數據交互和存儲中。Oracle數據庫支持JSON格式數據的存儲和查詢,本篇文章將介紹如何在Oracle中讀取JSON格式數據,並提供相關代碼示例。
1.創建JSON類型表
在Oracle 12c及以上版本中,可以通過CREATE TABLE語句創建一個JSON類型的表。
CREATE TABLE json_table
(id NUMBER PRIMARY KEY,
doc JSON);
其中,doc列的數據類型爲JSON,用於存儲JSON格式數據。
2.將JSON格式數據插入表中
可以通過INSERT INTO語句將JSON格式數據插入json_table表中。
INSERT INTO json_table (id, doc)
VALUES (1,'{
"name" : "John Smith",
"age" : 35,
"eml" : "[email protected]",
"phone" : [
{
"type" : "home",
"number" : "123-456-7890"
},
{
"type" : "work",
"number" : "098-765-4321"
}
]
}');
3.查詢JSON格式數據
在Oracle中,可以使用JSON_VALUE、JSON_QUERY、JSON_TABLE三個函數來查詢JSON格式數據。
3.1.使用JSON_VALUE查詢指定字段
JSON_VALUE函數用於查詢指定字段的值,例如查詢”eml”字段的值:
SELECT JSON_VALUE(doc, '$.eml')
FROM json_table
WHERE id = 1;
輸出結果爲:[email protected]
3.2.使用JSON_QUERY查詢子節點
JSON_QUERY函數用於查詢子節點,例如查詢”phone”子節點下的所有值:
SELECT JSON_QUERY(doc, '$.phone')
FROM json_table
WHERE id = 1;
輸出結果爲:
[
{
"type" : "home",
"number" : "123-456-7890"
},
{
"type" : "work",
"number" : "098-765-4321"
}
]
3.3.使用JSON_TABLE查詢子節點中的特定值
JSON_TABLE函數用於查詢子節點中的特定值,例如查詢”phone”子節點中”type”爲”home”的所有值:
SELECT phone.*
FROM json_table,
JSON_TABLE(doc,'$.phone[*]'
COLUMNS (
"type" varchar2(20) PATH '$.type',
"number" varchar2(20) PATH '$.number'
)) phone
WHERE id = 1 AND phone."type"='home';
輸出結果爲:
type number
home 123-456-7890
以上就是在Oracle中讀取JSON格式數據的實戰指南,隨着JSON數據在大數據領域的廣泛應用,掌握如何在Oracle中讀取JSON數據將變得越來越重要。