Oracle JSON函数未在小数点前添加前导零

时间:2018-10-22 12:49:15

标签: json sql-server oracle

在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,并且在JSONlintCode 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字符串更干净的解决方案。

0 个答案:

没有答案