Функции Oracle JSON не добавляют начальные нули в десятичные дроби - PullRequest
0 голосов
/ 22 октября 2018

Использование json_array в Oracle 12c:

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], не соответствуют RFC4627 и сбой проверки на 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 производить JSON, соответствующий RFC4627?В качестве альтернативы, как я могу заставить SQL Server анализировать несовместимый формат?

РЕДАКТИРОВАТЬ: Это большой (для моих ресурсов) поток данных, около 1 ТБ / час.Я надеюсь на более чистое решение, чем редактирование строк JSON в полете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...