SSIS 4000字符限制问题

时间:2018-02-21 21:15:51

标签: c# sql-server ssis

我的SSIS包需要读取JSON文件并将整个JSON文本存储到一行中。目前,我可以使用平面文件源来解决这个问题。

但是,数据类型必须是DT_NTEXT,因此我可以导入超过4000个字符。 当我需要包含从文件名和目录路径捕获的更多数据时,我的问题出现了。一旦它通过脚本组件捕获该信息,我就不能再将JSON数据写回其原始列DT_NTEXT是只读的。我也试过从Script Component中读取文件并遇到同样的问题。

我也尝试将它们用作两个不同的数据源并合并它们,但数据类型不允许我进行排序。最后,我尝试使用脚本组件将JSON数据分配给变量,但您只能在后执行中执行此操作。

整个情况的讽刺是,每个文件的所有数据只需要在一行上。这些列在这里列出:

Current Script output

这是我当前数据流的图片,但这并不能反映我尝试过的所有内容。

Control flow

Data flow

如果有人能帮助我解决这些奇怪的限制,我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

在脚本组件上,将JSON字符串转换为字节数组并存储它。

string jsonData = "<Your json string>";
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
OutputBuffer.AddRow(); 
OutputBuffer.JSON.AddBlobData(encoding.GetBytes(jsonData )); 

请点击此链接了解更多详情。

https://www.mssqltips.com/sqlservertip/5047/import-and-export-varcharmax-data-with-sql-server-integration-services-ssis/