现在我的SSIS包以文本格式创建一个平面文件。但现在客户端要求提供json格式的文件。我不知道如何以json格式放置文件。如果有人知道这些知识,请分享。
由于
答案 0 :(得分:4)
JSON(JavaScript Object Notation)是一种轻量级数据交换格式。它是XML的替代品。目前SSIS不为Json提供任何形式的支持。
我假设您要从数据库创建JSON文件。 SQL Server提供了很好的functionality to support XML。您可以使用FOR XML AUTO
子句将查询结果转换为XML格式。有第三方类库,Json.NET是一种流行的高性能JSON framework for .NET。
因此,以XML格式获取查询结果,将其存储在变量中,编写客户脚本,您可以将输入xml解析为JSON并使用原始文件目标保存结果。
还可以查看以下资源。
答案 1 :(得分:1)
我有两种方法可以做到这一点。
V1 1)数据泵以提交XML查询。 2)使用newtonsoft将XML文件转换为JSON文件。
V2 1)使用PowerShell,从SSIS调用PowerShell。 e.g。
$Result = @()
$commandSourceData = New-Object system.Data.SqlClient.SqlCommand($SQL, $sourceConnection)
$reader = $commandSourceData.ExecuteReader()
$Counter = $Reader.FieldCount
while ($Reader.Read())
{
$tuple = @{ }
for ($i = 0; $i -lt $Counter; $i++)
{
$tuple."$($Reader.GetName($i))" = "$(if ($Reader.GetFieldType($i).Name -eq 'DateTime')
{ $Reader.GetDateTime($i) }
else { $Reader.GetValue($i) })";
}
$Result += $tuple
}
$Reader.Close()
$Result | convertTo-JSON | Out-File $OutputFile -Force