Oracle 在 oracle regexp_substr 中使用正则表达式提取 json 字段
Oracle extract json fields using regular expression with oracle regexp_substr
我正在使用带有 正则表达式 的 Oracle 查询和 oracle regexp_substr 从中提取 json 字段JSON 字符串.
当我尝试获取代码键的值时它运行良好及其值,但是当我尝试获取结果键的值时它 return null。
我正在使用这个查询:
select regexp_replace(regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}','"results":\s*("(\w| )*")', 1, level), '"results":\s*"((\w| )*)"', '', 1, 1) results
from dual
connect by regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}', '"results":\s*("(\w| )*")', 1, level) is not null;
这个查询有什么问题?
谢谢
允许不同的数据格式。这导致 {"name":"osama"}
我希望这是你想要的:
select regexp_replace(regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}','"results":\s*{"(.*| )*"\}', 1, level), '"results":\s*(\{.*\})', '', 1, 1) results
from dual
connect by regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}', '"results":\{(.*)"\}', 1, level) is not null;
我正在使用带有 正则表达式 的 Oracle 查询和 oracle regexp_substr 从中提取 json 字段JSON 字符串.
当我尝试获取代码键的值时它运行良好及其值,但是当我尝试获取结果键的值时它 return null。
我正在使用这个查询:
select regexp_replace(regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}','"results":\s*("(\w| )*")', 1, level), '"results":\s*"((\w| )*)"', '', 1, 1) results
from dual
connect by regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}', '"results":\s*("(\w| )*")', 1, level) is not null;
这个查询有什么问题? 谢谢
允许不同的数据格式。这导致 {"name":"osama"}
我希望这是你想要的:
select regexp_replace(regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}','"results":\s*{"(.*| )*"\}', 1, level), '"results":\s*(\{.*\})', '', 1, 1) results
from dual
connect by regexp_substr('{"code":"001","message":"success","transactionId":437,"results":{"name":"osama"}}', '"results":\{(.*)"\}', 1, level) is not null;