在 DB2 中解析 JSON

Parse JSON in DB2

我正在尝试解析 DB2 中的 JSON 字段。我可以在 Oracle 中毫无问题地使用 JSON_VALUE 和 JSON_TABLE,但我在 DB2 中遇到错误。

如果我 运行 在 Oracle 中从 DUAL 进行这个简单测试,它 returns 当前时间戳和 100。 当我在 DB2 中尝试它时,它 returns 当前时间戳,但是 JSON_VALUE 的错误。我已经默认它说 'Not Found',没有它是一个 null/blank 值。

SELECT CURRENT TIMESTAMP AS CURRENT_TIMESTAMP,
       JSON_VALUE('{a:100}', '$.a' DEFAULT 'Not found' ON ERROR) AS JSON_PARSE
FROM SYSIBM.SYSDUMMY1

看来错误是由于 JSON 作为对 JSON_VALUE 的输入无效造成的。这对我有用(用引号括起“a”):

SELECT CURRENT TIMESTAMP AS CURRENT_TIMESTAMP,
       JSON_VALUE('{"a":100}', '$.a' DEFAULT 'Not found' ON ERROR) AS JSON_PARSE
FROM SYSIBM.SYSDUMMY1

Oracle 是否接受无效的 JSON 对象?