如何从sql中的一个文件夹读入多个json文件而不使用bulk

jk9hmnmh  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(339)

我试图在sql中读入多个json文件。我没有批量权限,正在使用dbvisualizer。我目前必须复制和粘贴每个文件。有没有办法读入400多个不同名字的文件。

Declare @json nvarchar(Max)
Set @json = '{
  "AudioFileResults": [
    {
      "AudioFileName": "test"
     }]}'
hmtdttj4

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 脚本如下:

set @json = '

和一个 after.sql 脚本如下:

';
insert into tableX values(@json);

然后重复读取文件夹中数百或数千个json文件,生成一个 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符合您实际想要运行的内容

相关问题