Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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 ScriptTask SQLBulkCopy Oracle Clob-多个列到单个本地列_C#_Oracle_Ssis_Clob_Sqlbulkcopy - Fatal编程技术网

C# SSIS ScriptTask SQLBulkCopy Oracle Clob-多个列到单个本地列

C# SSIS ScriptTask SQLBulkCopy Oracle Clob-多个列到单个本地列,c#,oracle,ssis,clob,sqlbulkcopy,C#,Oracle,Ssis,Clob,Sqlbulkcopy,我们有一组表,通过将Clob分解为4k块,可以快速从Oracle获取数据。我怀疑一个定制的iDataReader有点像这样: 这是必要的。我正在努力从datareader中获取clob部分,并将它们连接到本地varchar(max)字段中,同时正常处理其他列。我有一个分支路径,因为不是所有表都有这样的字段,并且可以通过另一个路径快速处理 我们已经尝试了很多方法,包括尝试直接将其拉入,切碎后加入oracle,等等。这似乎是获取数据的最快的方法。 (至少一个数量级) clob列如下所示: NVL(

我们有一组表,通过将Clob分解为4k块,可以快速从Oracle获取数据。我怀疑一个定制的iDataReader有点像这样:

这是必要的。我正在努力从datareader中获取clob部分,并将它们连接到本地varchar(max)字段中,同时正常处理其他列。我有一个分支路径,因为不是所有表都有这样的字段,并且可以通过另一个路径快速处理

我们已经尝试了很多方法,包括尝试直接将其拉入,切碎后加入oracle,等等。这似乎是获取数据的最快的方法。
(至少一个数量级)

clob列如下所示:

NVL(CAST(substr(DESCRLONG, 1, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART1,  
NVL(CAST(substr(DESCRLONG, 4001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART2,  
NVL(CAST(substr(DESCRLONG, 8001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART3,  
NVL(CAST(substr(DESCRLONG, 12001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART4,  
NVL(CAST(substr(DESCRLONG, 16001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART5,  
NVL(CAST(substr(DESCRLONG, 20001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART6,  
NVL(CAST(substr(DESCRLONG, 24001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART7,  
NVL(CAST(substr(DESCRLONG, 28001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART8  
本例中的本地字段是DESCRLONG,但可能不同,但clobpart是公共的,并被推送到varchar(max)。显示的非CLOB通路似乎工作良好,其基于顺序位置。显然,对于多对一来说,这不太管用

NVL(CAST(substr(DESCRLONG, 1, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART1,  
NVL(CAST(substr(DESCRLONG, 4001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART2,  
NVL(CAST(substr(DESCRLONG, 8001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART3,  
NVL(CAST(substr(DESCRLONG, 12001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART4,  
NVL(CAST(substr(DESCRLONG, 16001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART5,  
NVL(CAST(substr(DESCRLONG, 20001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART6,  
NVL(CAST(substr(DESCRLONG, 24001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART7,  
NVL(CAST(substr(DESCRLONG, 28001, 4000) as VARCHAR2(4000)), ' ') AS CLOBPART8