Oracle解析JSON

一、Oracle解析JSON格式欄位

在Oracle11g中,可以使用VARCHAR2作為JSON字元串的文本數據類型

CREATE TABLE json_table (
   id       NUMBER GENERATED ALWAYS AS IDENTITY,
   attr     VARCHAR2(4000) CONSTRAINT json_ck CHECK ( attr IS JSON )
);

在Oracle12c中,可以使用native JSON數據類型,VARBINARY JSON類型,CLOB JSON類型

CREATE TABLE json_tab (
   id       NUMBER GENERATED ALWAYS AS IDENTITY,
   jdoc     JSON,
   CONSTRAINT json_ck CHECK ( jdoc IS JSON )
);

二、Oracle解析JSON語句

Oracle可以使用JSON_TABLE函數來查詢JSON字元串中的數據

SELECT *
FROM   JSON_TABLE(
         '{"id": 100, "name": "John", "age": 25, "email": "john@example.com"}',
         '$'
         COLUMNS (
            id    NUMBER    PATH '$.id',
            name  VARCHAR2(50) PATH '$.name',
            age   NUMBER    PATH '$.age',
            email VARCHAR2(100) PATH '$.email'
         )
      );

結果:

  ID NAME          AGE EMAIL
---- ---------- ------ ------------------------
 100 John           25 john@example.com

三、Oracle解析JSON函數

(1)Oracle解析JSON格式函數

可以使用JSON_OBJECT、JSON_ARRAY、JSON_OBJECTAGG和JSON_ARRAYAGG函數來構建JSON數據

SELECT JSON_OBJECT('name' VALUE 'John', 'age' VALUE 25) 
FROM   DUAL;

結果:

{ "name" : "John", "age" : 25 }

(2)Oracle解析JSON字元串

可以使用JSON_QUERY函數來解析JSON字元串,可以返回一個標量或一個JSON對象、數組或標量值

SELECT JSON_QUERY('{"id": 100, "name": "John", "age": 25, "email": "john@example.com"}',
                  '$.id')
FROM   DUAL;

結果:

100

(3)Oracle解析JSON list

可以使用JSON_TABLE函數來解析JSON數組,JSON列是JSON數組中的元素的標量或對象

SELECT *
FROM   JSON_TABLE(
         '["apple", "orange", "banana"]',
         '$[*]'
         COLUMNS (
            id FOR ORDINALITY,
            fruit PATH '$'
         )
      );

結果:

 ID FRUIT 
--- ------
  1 apple 
  2 orange
  3 banana

(4)根據鍵取值

可以使用JSON_VALUE函數來根據鍵獲取值

SELECT JSON_VALUE('{"id": 100, "name": "John", "age": 25, "email": "john@example.com"}',
                   '$.name')
FROM   DUAL;

結果:

John

(5)Oracle解析JSON獲取欄位

可以使用JSON_EXISTS函數來確定JSON文檔中是否存在具有指定鍵或路徑的值

SELECT JSON_EXISTS('{"id": 100, "name": "John", "age": 25, "email": "john@example.com"}',
                     '$.name')
FROM   DUAL;

結果:

TRUE

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/200146.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-05 14:03
下一篇 2024-12-05 14:03

相關推薦

  • 如何將Oracle索引變成另一個表?

    如果你需要將一個Oracle索引導入到另一個表中,可以按照以下步驟來完成這個過程。 一、創建目標表 首先,需要在資料庫中創建一個新的表格,用來存放索引數據。可以通過以下代碼創建一個…

    編程 2025-04-29
  • JSON的MD5

    在Web開發過程中,JSON(JavaScript Object Notation)是最常用的數據格式之一。MD5(Message-Digest Algorithm 5)是一種常用…

    編程 2025-04-29
  • 使用Java將JSON寫入HDFS

    本篇文章將從以下幾個方面詳細闡述Java將JSON寫入HDFS的方法: 一、HDFS簡介 首先,先來了解一下Hadoop分散式文件系統(HDFS)。HDFS是一個可擴展性高的分散式…

    編程 2025-04-29
  • 如何使用Newtonsoft datatable轉Json

    Newtonsoft DataTable 是一個基於.NET的JSON框架,也是一個用於序列化和反序列化JSON的強大工具。 在本文中,我們將學習如何使用Newtonsoft Da…

    編程 2025-04-28
  • JPRC – 輕鬆創建可讀性強的 JSON API

    本文將介紹一個全新的 JSON API 框架 JPRC,通過該框架,您可以輕鬆創建可讀性強的 JSON API,提高您的項目開發效率和代碼可維護性。接下來將從以下幾個方面對 JPR…

    編程 2025-04-27
  • Python存為JSON的方法及實例

    本文將從以下多個方面對Python存為JSON做詳細的闡述。 一、JSON簡介 JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,易於人閱…

    編程 2025-04-27
  • 使用Python獲取JSON並解析

    本文將介紹如何使用Python獲取JSON數據並解析相關內容。通過使用Python的第三方庫,我們可以輕鬆地處理JSON數據,包括讀取、提取和操作JSON數據。 一、獲取JSON數…

    編程 2025-04-27
  • 使用Spread 8展示JSON數據

    使用Spread 8可以方便地展示JSON數據,本文將詳細介紹如何利用Spread 8展示JSON數據。 一、Spread 8簡介 Spread 8是一款強大的電子表格軟體,可以方…

    編程 2025-04-27
  • 如何在json轉實體類時忽略大小寫

    本文將從以下幾個方面介紹如何在json轉實體類時忽略大小寫。 一、使用Gson庫實現json轉實體類忽略大小寫 Gson是Google提供的Java JSON操作庫,它提供了簡單易…

    編程 2025-04-27
  • C# 中 JSON null 不顯示的處理方法

    本文將為大家介紹在 C# 中處理 JSON null 不顯示的解決方法。 一、null 不顯示的問題 在使用 C# 進行 JSON 數據處理的時候,經常會遇到 null 值不顯示的…

    編程 2025-04-27

發表回復

登錄後才能評論