Hem*_*kar 3 json sql-server-2016 azure-sql-database
我的 JSON 如下所示。ADF 可以毫无问题地读取此 JSON 并导入所有行。
{"Row":{"Col1":"Val1", "Col2":"Val2"}}
{"Row":{"Col1":"Val1", "Col2":"Val2"}}
{"Row":{"Col1":"Val1", "Col2":"Val2"}}
Run Code Online (Sandbox Code Playgroud)
但是,当我使用下面的查询从 SQL 读取此内容时,它仅返回第一条记录。
SELECT * FROM OPENJSON(@JSONDATA, '$')
with (
Col1 varchar(25) '$.Row.Col1'
);
Run Code Online (Sandbox Code Playgroud)
你知道为什么吗?
我认为你必须像下面这样改变你的 JSON 数据结构。您的 JSON 也无效。尝试任何在线 JSON 验证器以查看差异。
正确的应该是:
[
{"Col1":"Val1", "Col2":"Val2"},
{"Col1":"Val1", "Col2":"Val2"},
{"Col1":"Val1", "Col2":"Val2"}
]
Run Code Online (Sandbox Code Playgroud)
由于您的只是一个对象,因此它可能只会得到一行。 MSDNOPENJSON也是这样使用的。
将其更改为数组后,您必须像这样编辑查询:
SELECT * FROM OPENJSON(@JSONDATA, '$')
with (
Col1 varchar(25) '$.Col1',
Col2 varchar(25) '$.Col2'
);
Run Code Online (Sandbox Code Playgroud)
它现在获取所有行,如屏幕截图所示。
| 归档时间: |
|
| 查看次数: |
4545 次 |
| 最近记录: |