【问题标题】:extract from json string oracle从 json 字符串中提取 oracle
【发布时间】:2016-07-18 20:12:26
【问题描述】:

我在下面的列中有 JSON 字符串。 甲骨文版本 - 12c

{
[
{
"Employee_id": 1
,"Salary":3206.93
}
]
}

如何删除第一个花括号和方括号..

结果应该如下所示..

    {
    "Employee_id": 1
    ,"Salary":3206.93
    }

尝试使用像SELECT regexp_substr('"abc{[{def}]}ghi"', '\[(.+)\]') match FROM dual;这样的正则表达式

但它没有工作..

【问题讨论】:

  • 你很亲密。如果您想要“。”,则 REGEXP_SUBSTR 需要一个选项。匹配回车:regexp_substr(json_data_col, '[(.*)]', 1, 1, 'n') (docs.oracle.com/cd/B28359_01/server.111/b28286/functions138.htm)
  • 请注意,REGEXP_SUBSTR 将在结果中包含方括号,因此您必须修剪它们。
  • 您可以查看pljson 或类似的库或工具

标签: sql json regex oracle


【解决方案1】:
select replace(replace(myColumn, '{[{', '{'), '}]}', '}')
from myTable

请注意,此方法仅在此列始终包含 JSON 数组的单个元素并且 JSON 对象不包含任何其他 JSON 对象时才有效……否则它可能会损坏。使用风险自负:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 2021-01-29
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    相关资源
    最近更新 更多