我试图在sql中读入多个json文件。我没有批量权限,正在使用dbvisualizer。我目前必须复制和粘贴每个文件。有没有办法读入400多个不同名字的文件。
Declare @json nvarchar(Max) Set @json = '{ "AudioFileResults": [ { "AudioFileName": "test" }]}'
hmtdttj41#
像这样的powershell脚本:
$files = Get-ChildItem -Path "c:\temp\400jsons\*.json" $beforeSql = Get-Content -Path "c:\temp\400jsons\before.sql" -Raw $afterSql = Get-Content -Path "c:\temp\400jsons\after.sql" -Raw $sql = "declare @json nvarchar(max);`r`n" foreach ($f in $files){ $sql += $beforeSql $sql += Get-Content $f.FullName -Raw $sql += $afterSql + "`r`n" } Set-Content -Path "C:\temp\400jsons\out.sql" -Value $sql
将读取 before.sql 脚本如下:
before.sql
set @json = '
和一个 after.sql 脚本如下:
after.sql
'; insert into tableX values(@json);
然后重复读取文件夹中数百或数千个json文件,生成一个 before + json + after 一次又一次,最终写了一个文件 out.sql 看起来是这样的:
before + json + after
out.sql
declare @json nvarchar(max); set @json = '{ "my":"json1" }'; insert into tableX values(@json); set @json = '{ "my":"json2" }'; insert into tableX values(@json);
可以将其复制粘贴到dbv并运行。基本上就是将400个json连接到一个文件中,其中包含一些sql当然,您仍然需要创建before和after文件,以使sql符合您实际想要运行的内容
1条答案
按热度按时间hmtdttj41#
像这样的powershell脚本:
将读取
before.sql
脚本如下:和一个
after.sql
脚本如下:然后重复读取文件夹中数百或数千个json文件,生成一个
before + json + after
一次又一次,最终写了一个文件out.sql
看起来是这样的:可以将其复制粘贴到dbv并运行。基本上就是将400个json连接到一个文件中,其中包含一些sql
当然,您仍然需要创建before和after文件,以使sql符合您实际想要运行的内容