在Oracle 12c中使用json_array
:
SELECT
COLUMN_VALUE "value"
, json_array(COLUMN_VALUE) "json_output"
FROM TABLE(SYS.ODCINUMBERLIST(5.00, -5.00, 0.50, -0.50, 0.05, -0.05))
value json_output
5 [5]
-5 [-5]
0.5 [0.5] <--Zero before decimal
-0.5 [-0.5]
.05 [.05] <--No zero before decimal
-.05 [-.05]
最后两个json_output
字符串[.05]
和[-.05]
不符合RFC 4627,并且在JSONlint和Code Beautify的验证失败。
在SQL Server 2017上解析它们失败:
SELECT * FROM OPENJSON('[.05]')
Msg 13609, Level 16, State 4, Line 137
JSON text is not properly formatted. Unexpected character '.' is found at position 1.
如何强制Oracle生产符合RFC4627的JSON?或者,如何让SQL Server解析不兼容的格式?
编辑:这是一个大的(对于我来说,是资源)数据流,大约每小时1TB。我希望能找到一种比在运行过程中编辑JSON字符串更干净的解决方案。