Sql 带连字符键的Oracle JSON查询
我在12.1.0.2.0版中有一个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字符串 如何仍然查询连字符?解决
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”)
工作没有问题,即使它没有报价