【发布时间】:2021-08-13 04:32:34
【问题描述】:
我正在导入一组 JSON 文档,如下所示:
{
"_id": {
"$oid": "6092e24247f3024d478902c2"
},
"startSearch": "2021-05-05T18:20:50.132Z",
"Inst_ID": 856,
"hostname": "localhost",
"searchpath": "/Account/Main/_LookupOptimize",
"Params": {
"AccountStatusDisplay": [
"Active",
"Out For Repo",
"Repossessed"
]
},
"endSearch": "2021-05-05T18:20:53.993Z",
"elapsedTime": 3.861,
"totalRecordsFound": 1988
}
我将它们导入到 SQL Server 2019 的本地实例中,如下所示:
Declare @JSON nvarchar(max)
SELECT @JSON=BulkColumn
FROM OPENROWSET (BULK 'C:\temp\QueueSearch.JSON', SINGLE_CLOB) import
INSERT INTO myJSON
SELECT *
FROM OPENJSON (@JSON)
WITH
(
[_id] nvarchar(max),
[startSearch] datetime,
[Inst_ID] int,
[hostname] nvarchar(80),
[searchpath] nvarchar(50),
[Params] nvarchar(max),
[endSearch] datetime,
[elapsedTime] NUMERIC(10,4),
[totalRecordsFound] int
)
我的问题是 elapsedTime 值被四舍五入为整数。 (_id 值也没有被导入,但首先要做的事情。)我可能遗漏了一些非常简单的东西,但是如何保持我的 elapsedTime 值的准确性?提前致谢!
【问题讨论】:
-
openjson()代码看起来不错,除了缺少[Params] nvarchar(max) as json。那么myJSON表的定义是什么? -
我怀疑您的表已 elapsedTime 定义为整数。没有插入的选择返回正确的值
-
您可能还想要
[_id] nvarchar(max) '$._id."$oid"或[_id] nvarchar(max) as json
标签: json sql-server data-import