如何使用sql查询从json数据中替换转义字符(\')?



json_data ={"jobId":"7f","created":"2020-05-24T00:22:55.705373Z","updated":"2020-05-24T00:31:03.716279Z","status":"DONE","sha265sum":"d3adf4466b5c88027478e4c","result":"FAILED","errors":[{"errorCode":"S_ERROR","errorDetail":"In: Can't create in vms : Error when sending ing s request:INTERNAL: PreparedStatementCallback; Duplicate entry 'Mob 66 The L' for key 'uc'; nested exception is Violation Exception: Duplicate entry 'Mob 66 The L' for key 'uc'","sId":47}

我想使用 oracle sql 查询在上述数据中用空字符替换 (\'(;我正在尝试使用

从 json_logs d 中选择替换(d.json_data,"\"', '"''(,其中d.json_data像"%错误%";但没有运气

谢谢!

您的字符串已转义单引号,'.但你是东

replace(d.json_data,'"', '"')

正在寻找转义的双引号,".

所以你需要使用:

replace(d.json_data,'''', '''')

它还将搜索和替换字符串中的单引号加倍,以执行 Oracle 自己的转义。

您还可以使用替代引用机制:

replace(d.json_data,q'[']', q'[']')

但我不确定在这种情况下是否更清楚。

数据库<>小提琴

最新更新