Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SSIS 4000字符限制问题_C#_Sql Server_Ssis - Fatal编程技术网

C# SSIS 4000字符限制问题

C# SSIS 4000字符限制问题,c#,sql-server,ssis,C#,Sql Server,Ssis,我的SSIS包需要读取JSON文件并将整个JSON文本存储到一行中。目前,我可以用平面文件源代码来完成这项工作 但是,数据类型必须是DT_NTEXT,这样我可以导入4000多个字符。 当我需要包含从文件名和目录路径捕获的更多数据时,我的问题就出现了。一旦它通过脚本组件捕获该信息,我就不能再将JSON数据写回其原始列DT_NTEXT为只读。我也尝试过从脚本组件读取文件,但遇到了同样的问题 我还尝试将它们用作两个不同的数据源并合并它们,但数据类型不允许我进行排序。最后,我尝试使用脚本组件将JSON数

我的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