C# SSIS ScriptTask SQLBulkCopy Oracle Clob-多个列到单个本地列
我们有一组表,通过将Clob分解为4k块,可以快速从Oracle获取数据。我怀疑一个定制的iDataReader有点像这样: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(
这是必要的。我正在努力从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