SSIS 2008 - 浮点值导出到平面文件目标中的指数值
SSIS 2008 - Float value exported to exponential value in Flat file destination
我正在尝试将 table 导出到平面文件目标。浮点列值 (0.0911780821917808) 导出到平面文件中的 9.1178082191780821E-2。
Table
创建 table 测试
(
col1 浮动
)
第 1 列
0.0911780821917808
正在将此 table 导出到平面文件目标。但是导出为 .txt 文件中的值“9.1178082191780821E-2”。但是,正确的值在 OLE DB 源之后出现在 DataViewer 中。
请指导将值原样导出到平面文件。
预先感谢您的宝贵时间
此致,
斯大林
我之前遇到过类似的问题,事实证明最安全的方法是通过 STR 函数在源代码中转换为字符串。例如,您可以使用这样的 SQL 查询在 OLEDB 源代码中读取 table:
SELECT LTRIM(STR(col1,25,18) ) Col1casted
FROM
TEST
那么您可能需要重新创建平面文件目标(或更改数据类型)
在此示例中,我将转换后的值设置为 25 位长,其中 18 位是小数,但您可以进行调整以确保它涵盖 table.
中的值范围
对于甲骨文:
SELECT TO_CHAR(0.0911780821917808267712341,'9D9999999999999999') FROM DUAL;
以上格式设置为16位小数,例子在sql fiddle
https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=487fe7bf6cf3a2264f988523e5ac7a3d
我正在尝试将 table 导出到平面文件目标。浮点列值 (0.0911780821917808) 导出到平面文件中的 9.1178082191780821E-2。
Table 创建 table 测试 ( col1 浮动 )
第 1 列 0.0911780821917808
正在将此 table 导出到平面文件目标。但是导出为 .txt 文件中的值“9.1178082191780821E-2”。但是,正确的值在 OLE DB 源之后出现在 DataViewer 中。
请指导将值原样导出到平面文件。
预先感谢您的宝贵时间
此致,
斯大林
我之前遇到过类似的问题,事实证明最安全的方法是通过 STR 函数在源代码中转换为字符串。例如,您可以使用这样的 SQL 查询在 OLEDB 源代码中读取 table:
SELECT LTRIM(STR(col1,25,18) ) Col1casted
FROM
TEST
那么您可能需要重新创建平面文件目标(或更改数据类型)
在此示例中,我将转换后的值设置为 25 位长,其中 18 位是小数,但您可以进行调整以确保它涵盖 table.
中的值范围对于甲骨文:
SELECT TO_CHAR(0.0911780821917808267712341,'9D9999999999999999') FROM DUAL;
以上格式设置为16位小数,例子在sql fiddle
https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=487fe7bf6cf3a2264f988523e5ac7a3d