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