Sql 带连字符键的Oracle JSON查询

Sql 带连字符键的Oracle JSON查询,sql,json,oracle,oracle12c,json-value,Sql,Json,Oracle,Oracle12c,Json Value,我在12.1.0.2.0版中有一个Oracle数据库和要查询的JSON字段 此查询可用于: select JSON_VALUE('{"-": "hello", "de":"hallo"}','$."de"') from DUAL 此查询返回错误ORA-40442 select JSON_VALUE('{"-": "hello", "de":"hallo"}','$."-"') from DUAL MySQL和MSSQL对连字符的查询没有问题 我无法更改JSON字符串 如何仍然查询连字符?解决

我在12.1.0.2.0版中有一个Oracle数据库和要查询的JSON字段

此查询可用于:

select JSON_VALUE('{"-": "hello", "de":"hallo"}','$."de"') from DUAL
此查询返回错误ORA-40442

select JSON_VALUE('{"-": "hello", "de":"hallo"}','$."-"') from DUAL
MySQL和MSSQL对连字符的查询没有问题

我无法更改JSON字符串


如何仍然查询连字符?

解决方案是使用unicode表示法:

select JSON_VALUE('{"-": "hello", "de":"hallo"}','$."\u002d"') from DUAL
两者都有

从DUAL中选择JSON_值(“{”-”:“hello”,“de”:“hallo”},“$”de“)

从DUAL中选择JSON_值(“{”-”:“hello”,“de”:“hallo”},“$。”-”)

有效

除非
JSON路径表达式
包含不带引号的非字母数字字符,例如:

从DUAL中选择JSON_值(“{”-”:“hello”,“de:“hallo”}',“$.-”)

从DUAL中选择JSON_值(“{”-”:“hello”,“de:“hallo”}',“$.d-e”)

不工作并返回错误
ORA-40442

但是

从DUAL中选择JSON_值(“{”-”:“hello”,“de”:“hallo”},“$.de”)

工作没有问题,即使它没有报价