【发布时间】:2016-02-19 22:13:09
【问题描述】:
我正在将数据库从一种结构转换为新结构。旧数据库是 FoxPro,新数据库是 SQL Server。问题是一些数据在foxpro中保存为char数据,但实际上是外键表。这意味着它们需要是 sql 中的 int 类型。问题是当我尝试在 SSIS 中从任何与字符相关的类型到整数的数据转换时,我得到以下错误消息:
输出“OLE DB 源输出”(22) 上的输出列“columnName”(24) 存在错误。返回的列状态为:“由于可能丢失数据,无法转换该值”。
如何从字符串或字符转换为 int 而不会出现潜在的数据丢失错误。我手动检查了这些值,看起来它们都小到可以放入 int 数据类型。
【问题讨论】:
-
您能否提供一个要转换的示例值?并且还提供源的确切数据类型(由 SSIS 解释)
-
如果你能得到一份 Visual FoxPro 9.0 的副本(也许是 MSDN sub),你可以使用 SQL Server Upsizing Wizard。
-
@devlincarnate 这些值看起来都像整数,但它们被保存为字符类型。示例:34563927342
-
@AlanB 你能扩展一下吗?我有foxpro 9。什么是sql server up-sizing Wizard?
-
您确实意识到 34563927342 超过了整数的最大值,对吧?您需要使用 int64 / bigint。
标签: sql sql-server ssis bids foxpro