C# SSIS 4000字符限制问题
我的SSIS包需要读取JSON文件并将整个JSON文本存储到一行中。目前,我可以用平面文件源代码来完成这项工作 但是,数据类型必须是DT_NTEXT,这样我可以导入4000多个字符。 当我需要包含从文件名和目录路径捕获的更多数据时,我的问题就出现了。一旦它通过脚本组件捕获该信息,我就不能再将JSON数据写回其原始列DT_NTEXT为只读。我也尝试过从脚本组件读取文件,但遇到了同样的问题 我还尝试将它们用作两个不同的数据源并合并它们,但数据类型不允许我进行排序。最后,我尝试使用脚本组件将JSON数据分配给变量,但只能在执行后执行 整个情况的讽刺之处在于,对于每个文件,所有数据只需要放在一行上。各栏的概述如下: 下面是我当前数据流的图片,但这并不能反映我所尝试的一切C# SSIS 4000字符限制问题,c#,sql-server,ssis,C#,Sql Server,Ssis,我的SSIS包需要读取JSON文件并将整个JSON文本存储到一行中。目前,我可以用平面文件源代码来完成这项工作 但是,数据类型必须是DT_NTEXT,这样我可以导入4000多个字符。 当我需要包含从文件名和目录路径捕获的更多数据时,我的问题就出现了。一旦它通过脚本组件捕获该信息,我就不能再将JSON数据写回其原始列DT_NTEXT为只读。我也尝试过从脚本组件读取文件,但遇到了同样的问题 我还尝试将它们用作两个不同的数据源并合并它们,但数据类型不允许我进行排序。最后,我尝试使用脚本组件将JSON数
如果有人能帮我克服这些奇怪的限制,我将不胜感激 在脚本组件上,将JSON字符串转换为字节数组并存储
string jsonData = "<Your json string>";
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
OutputBuffer.AddRow();
OutputBuffer.JSON.AddBlobData(encoding.GetBytes(jsonData ));
string jsonData=”“;
System.Text.asciencoding encoding=新的System.Text.asciencoding();
OutputBuffer.AddRow();
OutputBuffer.JSON.AddBlobData(encoding.GetBytes(jsonData));
请点击此链接了解更多详细信息
什么版本的SQL?有新的JSON函数。您可以使用存储过程和脚本任务来完成吗?使用2016。我知道它有OPENJSON,这就是为什么我将整个JSON数据放在一行中,以便在导入时在触发器中使用该命令。似乎工作得很好,但我需要文件名中的额外信息。我真的不明白。但是如果你想在一个产生列的数据流中实现脚本魔术,那么脚本转换比变量+脚本组件更好。我已经尝试过这种方法,但是在尝试将json数据重新分配到output0buffer列之后,我一直被限制在4000个字符的范围内。如果我在对变量执行后执行,它直到数据流之后才被赋值。这看起来很有希望。我明天会尝试确认。似乎在正确的轨道上,但现在我的数据正在输出到断开的汉字。例子:ൻ †∠䭓≕›㠢㌳〱ⴵ㉂∱††匢慴畴≳›ൻ †††∠效污桴㨢∠䭏ഢ †素††吢灹≥›䌢浯異整卲獹. 这只发生在JSON列中。需要先输出到DT_文本,然后转换到DT_NText