【发布时间】:2018-05-26 08:28:54
【问题描述】:
我正在从工作正常的外部 JSON 文件导入数据,但我还希望包含一个存储当前日期/时间的列,以存储提取数据的时间。
CREATE PROCEDURE main.loadJSON
AS
DECLARE @Details NVARCHAR(MAX)
SELECT @Details =
BulkColumn
FROM OPENROWSET(BULK'C:\Users\Vally\Desktop\persondata.json',SINGLE_CLOB) JSON
INSERT INTO main.jsontable (dateloaded,name,surname,email,age,balance,country,registered)
VALUES(GETDATE(),
(SELECT *
FROM OPENJSON(@Details,'$.PersonDetails.Person')
WITH(
[Name] NVARCHAR(50) '$.first_name',
[Surname] NVARCHAR(50) '$.last_name',
[Email] NVARCHAR(50) '$.email',
[Age] NVARCHAR(50) '$.age',
[Balance] NVARCHAR(50) '$.balance',
[Country] NVARCHAR(50) '$.country',
[Registered] NVARCHAR(50) '$.registered'
)
)
)
GO
它给了我 2 个错误。
第 27 行 当子查询不使用 EXISTS 引入时,选择列表中只能指定一个表达式。
第 13 行 INSERT 语句中的列多于 VALUES 子句中指定的值。 VALUES 子句中的值数必须与 INSERT 语句中指定的列数匹配。
有什么问题?
【问题讨论】:
标签: sql