我的SSIS包需要读取JSON文件并将整个JSON文本存储到一行中。目前,我可以使用平面文件源来解决这个问题。
但是,数据类型必须是DT_NTEXT,因此我可以导入超过4000个字符。 当我需要包含从文件名和目录路径捕获的更多数据时,我的问题出现了。一旦它通过脚本组件捕获该信息,我就不能再将JSON数据写回其原始列DT_NTEXT是只读的。我也试过从Script Component中读取文件并遇到同样的问题。
我也尝试将它们用作两个不同的数据源并合并它们,但数据类型不允许我进行排序。最后,我尝试使用脚本组件将JSON数据分配给变量,但您只能在后执行中执行此操作。
整个情况的讽刺是,每个文件的所有数据只需要在一行上。这些列在这里列出:
这是我当前数据流的图片,但这并不能反映我尝试过的所有内容。
如果有人能帮助我解决这些奇怪的限制,我们将不胜感激。
答案 0 :(得分:2)
在脚本组件上,将JSON字符串转换为字节数组并存储它。
string jsonData = "<Your json string>";
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
OutputBuffer.AddRow();
OutputBuffer.JSON.AddBlobData(encoding.GetBytes(jsonData ));
请点击此链接了解更多详情。