[英]SQL JSON Table Issue
我正在从外部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
它给了我两个错误。
第27行当EXISTS未引入子查询时,只能在选择列表中指定一个表达式。
第13行INSERT语句中的列多于VALUES子句中指定的值。 VALUES子句中的值数必须与INSERT语句中指定的列数匹配。
有什么问题
避免使用SELECT *,而是明确指定所有列
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.