Mah*_*344 2 sql sql-server ssis
我有 SSIS 数据流任务,我需要将数据从一个 sql 数据库传输到另一个 sql 数据库。我在 SQL 中的源数据库列数据类型是float,在 ssis 中它的double-precision float [DT_R8]. 目标列数据类型是Varchar(50). 当我执行数据流时,传输到目标表的数据与源数据不同,例如:
+------------+---------------------------------+
| SourceValue| DestinationValue After execution|
+------------+---------------------------------+
| 0.579 | 0.578999999999999965 |
| 0.637 | 0.63700000000000001 |
| 0.503 | 0.503 |
+------------+---------------------------------+
Run Code Online (Sandbox Code Playgroud)
因此,对于某些值,它相同,但对于其他值则不同。我已经尝试了 3 种方法来解决这个问题:-
cast(col as varchar)cast(col as float)double-precision float [DT_R8]. 虽然我收到警告说数据类型在执行时需要改变。但是以上步骤都没有解决我的问题。
我发现在源流中我已将数据类型从 更改double-precision float [DT_R8]为DT_DECIMAL. 它现在工作正常,值按原样传输到目标表。
例如:
+------------+---------------------------------+
| SourceValue| DestinationValue After execution|
+------------+---------------------------------+
| 0.579 | 0.579 |
| 0.637 | 0.637 |
| 0.503 | 0.503 |
+------------+---------------------------------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21050 次 |
| 最近记录: |