问题:为什么我无法应用 OPENJSON 函数将以下数据读取为标准柱状形式?如何修改查询或 JSON 文本来解决此问题?
上下文:我在 SQL Server 的全局临时表中有一些 JSON 数据,我正在尝试解析并加载到标准表中。
SELECT * FROM ##json_loop_tracking;
返回以下结构中的单行数据:
{'sends': 0, 'opens': 0, 'clicks': 0, 'forwards': 0, 'unsubscribes': 0, 'bounces': 0, 'spam_count': 0}
尝试在下面的代码块中应用 OPENJSON 函数时,出现以下错误:
消息 13609,级别 16,状态 4,第 51 行 JSON 文本格式不正确。在位置 1 发现了意外的字符 '''。
INSERT INTO ##jsonparsed_tracking (
sends,opens,clicks,forwards,unsubscribes,bounces,spam_count
)
SELECT DISTINCT
jsn.sends, jsn.opens, jsn.clicks, jsn.forwards, jsn.unsubscribes, jsn.bounces,jsn.spam_count
FROM ##json_loop_tracking
OUTER APPLY (
SELECT * FROM OPENJSON(##json_loop_tracking.my_json)
WITH (
sends int '$.sends',
opens int '$.opens',
clicks int '$.clicks',
forwards int '$.forwards',
unsubscribes int '$.unsubscribes',
bounces int '$.bounces',
spam_count int '$.spam_count'
)
) AS jsn