我有一个 CSV 文件,其中包含 salesforce 数据并使用 python API 调用生成,我正在尝试使用 SSIS 将文件加载到 MS SQL DB 中。
我需要一个 C# 脚本来纠正这个问题,因为数据不一致(没有列和列的顺序可以随时更改)。下面提到的是更多细节:
该文件不是完全符合文本条件的。很少有文本限定的记录,并且这些记录中包含引号/逗号。
我尝试关注以下博客:-
- Load Text/ CSV files To table when Number of Column Can Change in Source File/s - SQL Server Integration Services(SSIS) Tutorial
- DYNAMIC DATA COLUMN POSITION FOR FLAT FILES IN SSIS
但此逻辑仅在文本中没有引号或逗号时有效,否则程序会因数据处置而失败。
我又查看了一些关于 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/