如何将列添加到数据读取器

时间:2020-09-15 17:22:02

标签: c# sqldatareader datareader

我几乎遇到与下面的情况(链接)完全相同的问题,但是很遗憾,我无法成功地重新创建解决方案。

我有一个使用SQL Bulk Import和datareader和writetoserver的c#应用程序,其中是SQLDatReader或OracleDataReader,我需要在结果集中添加列。

我无法在源sql语句上执行此操作。 我无法先加载数据表并进行修改(因为它是100 GB的数据,几乎是TB)。

How to add columns to DataReader

任何人都可以提供一个工作示例来帮助我“解决”这个问题吗?

我临时找到了一种使用SQL Server Integration Services(SSIS)的解决方案,但是我在观看它运行时发现,它会将所有数据下载到dts_buffer中,而不是修改列,然后将数据泵入sql server中,尝试使用几个100gb的数据来做到这一点,如果您甚至可以让您的基础架构来构建具有128gb内存的24核心VM,那也不是一件好事。

1 个答案:

答案 0 :(得分:0)

我终于有了一个小的工作示例,codeproject(jdweng)很有帮助。 我将进行跟进,我已经使用sql server(sqldatareader)进行了测试,需要使用oracle数据读取器进行测试。

我尝试的一种情况是将oracle唯一ID(存储为字符串)转换为sql服务器作为uniqueidentifier。我想即时进行转换,没有办法调整源oracle语句(ADyson)以将兼容的数据类型返回到sql server。之后将1tb表从varchar(40)更改为uniqueidentifier会很痛苦,但是如果我可以作为批量插入的一部分进行更改,那将很快。

我想现在我可以了。

相关问题