带有特殊字符的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

使用一个Oracle存储过程,我试图解析出一个返回的JSON列表,该列表运行良好

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
隔离这一行。