通过SSIS创建json格式文件
现在,我的SSIS包以文本格式创建一个平面文件。但现在客户机要求提供json格式的文件。我不知道如何以json格式放置文件。如果有人有这方面的知识,请分享 感谢您,JSON(JavaScript对象表示法)是一种轻量级数据交换格式。它是XML的替代品。目前SSIS不提供任何类型的Json支持 我假设您希望从数据库创建JSON文件。SQL Server确实提供了良好的性能。您可以使用通过SSIS创建json格式文件,ssis,Ssis,现在,我的SSIS包以文本格式创建一个平面文件。但现在客户机要求提供json格式的文件。我不知道如何以json格式放置文件。如果有人有这方面的知识,请分享 感谢您,JSON(JavaScript对象表示法)是一种轻量级数据交换格式。它是XML的替代品。目前SSIS不提供任何类型的Json支持 我假设您希望从数据库创建JSON文件。SQL Server确实提供了良好的性能。您可以使用FOR XML AUTO子句将查询结果转换为XML格式。还有第三方类库Json.NET,这是一个流行的高性能类库 所
FOR XML AUTO
子句将查询结果转换为XML格式。还有第三方类库Json.NET,这是一个流行的高性能类库
所以,以XML格式获取查询结果,将其存储在变量中,编写一个客户脚本,在该脚本中,您可以将输入XML解析为JSON,并使用原始文件目的地保存结果
也可以查看下面的资源
$Result=@()
$commandSourceData=新对象system.Data.SqlClient.SqlCommand($SQL,$sourceConnection)
$reader=$commandSourceData.ExecuteReader()
$Counter=$Reader.FieldCount
而($Reader.Read())
{
$tuple=@{}
对于($i=0;$i-lt$计数器;$i++)
{
$tuple.“$($Reader.GetName($i))”=“$(如果($Reader.GetFieldType($i).Name-eq'DateTime'))
{$Reader.GetDateTime($i)}
else{$Reader.GetValue($i)})”;
}
$Result+=$tuple
}
$Reader.Close()
$Result | convertTo JSON | Out File$OutputFile-Force
谢谢,很抱歉响应太晚。我会试试这些方法。警告你。FOR XML AUTO
子句不会修复列中在XML中非法的无效字符,因此如果有任何无效XML字符,则需要在SQL查询中处理。我处理这个问题的方法是在我知道包含无效字符的列上使用REPLACE()
,尽管我确信还有其他方法可以做到这一点。下面是一个有效的JSON文件:{data=“your emtire CSV Here”}
客户需要让您知道他们到底想要什么。