动态检索JSON数据到ORacle 12c版本1。

问题描述 投票:0回答:1

我需要在Oracle 12c v12.1.0.2中将JSON转换为数据表(键值列)。

例如:有一个JSON字符串,如 {"ID": 10, "Description": "TestJSON", "status":"New"}

我需要将其转换为.NET语言。

Column1          Column2
------------------------------------
ID                  10
Description         TestJSON
status              New

现在,我的JSON字符串可以改变属性的数量,因此我需要保持转换的动态。

任何帮助将被感激。

谢谢!我需要在Oracle中把JSON转换成数据表(键值列)。

oracle oracle12c
1个回答
0
投票

你可以使用层次结构查询和实现它。REGEXP 以下是:

SQL> with dataa(d) as
  2  (select '["ID": 10, "Description": "TestJSON", "status":"New"]' from dual)
  3  --
  4  -- Your query starts from here
  5  SELECT TRIM('"' FROM REGEXP_SUBSTR(STR,'[^:]+',1,1)) AS COL1,
  6         TRIM('"' FROM TRIM(REGEXP_SUBSTR(STR,'[^:]+',1,2))) AS COL2
  7    FROM
  8  (SELECT t.d, trim(REGEXP_SUBSTR(trim(']' from trim('[' from T.D)), '[^,]+', 1, COLUMN_VALUE)) as str
  9    FROM DATAA T
 10   CROSS JOIN TABLE ( CAST(MULTISET(
 11  SELECT LEVEL FROM DUAL CONNECT BY
 12  LEVEL <= LENGTH(REGEXP_REPLACE(T.D, '[^,]+')) + 1
 13  ) AS SYS.ODCINUMBERLIST) ) LEVELS);

COL1            COL2
--------------- --------------------
ID              10
Description     TestJSON
status          New

SQL>
© www.soinside.com 2019 - 2024. All rights reserved.