c# - 将超过 255 个字符从 excel 导入到 sql server(上一个问题 - 如何使用 ssis 将文本限定 CSV 动态加载到 sql server)

标签 c# ssis script-task csv-import script-component

我有一个 CSV 文件,其中包含 salesforce 数据并使用 python API 调用生成,我正在尝试使用 SSIS 将文件加载到 MS SQL DB 中。

我需要一个 C# 脚本来纠正这个问题,因为数据不一致(没有列和列的顺序可以随时更改)。下面提到的是更多细节:

该文件不是完全符合文本条件的。很少有文本限定的记录,并且这些记录中包含引号/逗号。

我尝试关注以下博客:-

但此逻辑仅在文本中没有引号或逗号时有效,否则程序会因数据处置而失败。

我又查看了一些关于 techbrothersit 的文章,但我对如何处理文本限定数据一无所知。谁能为此提供可能的解决方案。

更新 1

我在这个问题上苦苦挣扎,并考虑过改用 excel,但我也面临着 excel 的一些问题。 我正在将数据从 excel 源导入到 oledb 目标,但它会将数据截断为 255 个字符,而我需要整个数据。作为一种解决方案,我不想尝试注册表编辑,因为我稍后会将我的程序部署到生产环境中,这会影响性能。 将无法在第一行中保留更多长度的数据(数据来自 API)。 所以现在的问题是我想要没有截断的数据(使用 excel 我能够克服 CSV 中存在的问题)。

非常感谢任何帮助。

提前致谢。

最佳答案

SSIS 不适合解决此类问题 - 它更适合重复加载静态文件结构。到那时,文件的连接管理器是静态的——它永远不会改变。雪上加霜的是,您有一个没有文本限定符的分隔文件,因此如果文本值恰好与列分隔符匹配,则数据将溢出到其他列中。这将有效地破坏您的数据导入。

建议您逆流而上,使用 API 生成器创建标准化的输出文件。你能做到吗?

关于c# - 将超过 255 个字符从 excel 导入到 sql server(上一个问题 - 如何使用 ssis 将文本限定 CSV 动态加载到 sql server),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55705015/

相关文章:

c# - Azure Cosmos Document DB - 按 id 读取多个文档

c# - 从脚本组件 (SSIS) 调试 .NET dll

sql-server - 无法加载执行脚本

sql-server - Visual Studio 和 SQL Server - 安装顺序正确吗?

c# - 用于拆分 Amazon S3 存储桶日志列的正则表达式?

ssis - 为什么 BIML ScriptTask 会失败,直到我在 VS 中打开脚本并保存包

c# - 无法让 SSIS 脚本任务工作

c# - 如何使用 KeyPress 一次按 3 个键?

c# - FirstOrDefault() == null ?假 : true;

c# - RGB转长转RGB