带有特殊字符的Oracle JSON字段名
使用一个Oracle存储过程,我试图解析出一个返回的JSON列表,该列表运行良好带有特殊字符的Oracle JSON字段名,json,oracle,Json,Oracle,使用一个Oracle存储过程,我试图解析出一个返回的JSON列表,该列表运行良好 JSON_TABLE(lv_clob,'$[*]' 我遇到的唯一问题是一个字段名“access\u No(例如.\u abc123)”,该字段名本身包含()。我假设这是一个特殊字符问题,因为我因此收到一个Oracle JSON错误 有没有办法读取该列或将其转换为其他内容?我需要值“YYr11” JSON示例: {"first_name": "Jon", "last_name": "Doe", "street_ad
JSON_TABLE(lv_clob,'$[*]'
我遇到的唯一问题是一个字段名“access\u No(例如.\u abc123)”
,该字段名本身包含(
)。我假设这是一个特殊字符问题,因为我因此收到一个Oracle JSON错误
有没有办法读取该列或将其转换为其他内容?我需要值“YYr11”
JSON示例:
{"first_name": "Jon",
"last_name": "Doe",
"street_address": null,
"city": testingcity,
"state": md,
"zip": 11234,
"access_No_(e.g._abc123)": "YYr11",
"allocation": null,
"title": null,
"title_label": null
}
我的代码行:
access_id VARCHAR2(100) PATH '$.access_No_(e.g._abc123)'
您可以在
列
子句中用双引号括起字段名:
access_id VARCHAR2(100) PATH '$."access_No_(e.g._abc123)"'
然后,字段名中的句点(可能还有括号)不会被视为分隔符
快速演示:
select * from
JSON_TABLE('{"first_name": "Jon",
"last_name": "Doe",
"street_address": null,
"city": "testingcity",
"state": "md",
"zip": 11234,
"access_No_(e.g._abc123)": "YYr11",
"allocation": null,
"title": null,
"title_label": null
}' format json, '$'
columns
access_id VARCHAR2(100) PATH '$."access_No_(e.g._abc123)"'
);
ACCESS_ID
----------------------------------------------------------------------------------------------------
YYr11
您遇到了什么错误?最好显示整个查询,而不是为
access\u id
隔离这一行。