将JSON文件读入表

辉煌

我正在尝试从某个位置读取JSON文件并写入SQL Server表。该位置中的文件每天都会更改,因此,我可能需要找到一种动态的方式来选择文件名。

我尝试使用OPENROWSET,但是我读到我无法使用来参数化位置名称。我尝试OPENROWSET与动态查询一起使用,但收到错误消息,找不到文件位置。阅读有关信息后,似乎可能是文件夹权限问题。

我不想尝试并希望获得帮助的是如何读取JSON文本文件并将数据写入表中,然后OPENJSON从那里使用该函数。

谁能帮我解决如何使用T-SQL或SSIS在blob中加载JSON数据的SQL服务器。

奥卡·内华斯

-从文件批量导入数据

Select BulkColumn from openrowset(Bulk'D:\home\HS\HS-Web\wwwroot\Json files\test.json',single_blob)JSON;

-查看从批量导入中导入的数据作为单列

DECLARE @TestDetails VARCHAR(MAX)
SELECT @TestDetails = BulkColumn FROM 
OPENROWSET(BULK'D:\Omkar\Projects\HS\Documents\test.json', SINGLE_BLOB) JSON;

SELECT @TestDetails as SingleRow_Column

-检查导入的数据是否为有效数据,如果= 1数据为有效

if(ISJSON(@TestDetails)=1)
BEGIN
PRINT 'Valid Data Imported'
END
ELSE
BEGIN
PRINT 'Invalid Data Imported'
END
GO

-现在选择要添加到表中的数据,这里$ .tests是数组对象名称

SELECT testCode,Test,Method FROM OPENJSON(@TestDetails, '$.Tests')
WITH(
testCode nvarchar(50)'$.testCode',
Test nvarchar(50)'$.Test',
Method nvarchar(50)'$.Method'
)

-现在如果需要插入默认值,则将数据插入表中,然后在select中选择默认值

Insert into TestDetails(Active,CreatedDate,testCode,Test,Method)
SELECT '1','2019-10-23 06:01:10.7927233',testCode,Test,Method FROM 
OPENJSON(@TestDetails, '$.Tests')
WITH(
testCode nvarchar(50)'$.testCode',
Test nvarchar(50)'$.Test',
Method nvarchar(50)'$.Method'
)[Json file Screen Shot][1]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章