首先让我澄清一下,这不是一个重复的问题,也不是一个潜在的重复问题。我已经尝试对 StackOverflow 和 DBA Stack Exchange 上已经存在的这个问题的每一个变体实施每一个答案,但没有任何运气。
过去两天我一直在努力解决这个问题(每天大约工作 7 小时),即使在谷歌搜索这个问题之后,似乎没有其他人遇到我的问题的完全相同的变体。
在 SSIS 中,我试图从 CSV 文件中读取数据,并将其中的行插入到 OLE DB 数据库中。为此,我进行了有史以来最简单的设置,如下所示。
Flat File Source
- 读取 CSV 行。Derived Column
- 目前什么都不做(它只是为了试验)。Data Conversion
- 目前什么都不做(它只是为了试验)。OLE DB Destination
- 将行存储在数据库中。当我尝试运行它时,它停止在我的OLE DB 目标处执行并显示以下错误消息。
输入“OLE DB 目标输入”(51) 上的输入列“数量”(187) 出错。返回的列状态为:“由于潜在的数据丢失,无法转换该值。”。
失败 ( Amount
)的列当前的类型是DT_STR
。这似乎是我现在最相信的类型。
Flat File Connection
失败的列上使用“建议类型”功能。这使得它推荐Single byte signed int
数据类型。
Derived Column …
我的数据库速度变慢了。phpMyAdmin 中的分析器建议我OPTIMIZE TABLE
在我的表上运行。
但在这样做之前,我(当然)想知道表中的数据是否会发生任何事情,或者此操作是否完全无害。
使用时我应该考虑利弊OPTIMIZE TABLE
吗?索引和主键会保持不变吗?数据库中是否有优化后会变慢的区域?
我最近进入了 SSIS,但无法在网络上的任何地方找到我想要实现的目标。
我试图将一些行作为输入,然后用其他内容替换一个特定列的值,然后返回带有修改过的列的行作为输出。
问题是我不知道要使用哪个任务。
我受到 SQL Server 2008 的限制。
我该如何开始?