SQL SSIS转换问题

Posted

技术标签:

【中文标题】SQL SSIS转换问题【英文标题】:SQL SSIS Convert question 【发布时间】:2011-01-19 16:12:37 【问题描述】:

我有一个要转换为 SSIS 包中的 prn 的 excel 文件。我的问题。我的一个专栏有货币,一切都应该有小数点,但不是所有的数字都有。例如,如果没有美分,它只会读取 10425。我在 SSIS 中需要做的是读取 10425.00,就像文件中的其他数字一样。

请帮忙。

【问题讨论】:

【参考方案1】:

您可以使用派生列转换来转换数据类型。我认为 Currency (DT_CY) 数据类型不会强制您使用小数位,但您可以使用 Decimal (DT_DECIMAL) 数据类型。

(DT_DECIMAL,2)MyMoneyColumn

【讨论】:

我试过这个,但它仍然以同样的方式吐出。我在想这个 (DT_DECIMAL,2)Round((DT_Decimal,2)[Copy of Debit Amt] / (DT_DECIMAL,2)) 可以吗? @gabrielVa,派生列转换编辑器说什么是输出数据类型?而且,是的,你可以试试你的表达方式;它应该可以工作。 HI Bobs,数据类型为十进制[DT_DECIMAL]。表达式为 (DT_DECIMAL,3)[借方金额的副本]。【参考方案2】:

SSIS 依靠注册表项来确定要采样的行数。如果您使用默认设置,那么它可能只检查前 8 行。您可以通过修改注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel 下的 TypeGuessRows 键来增加它使用的行数。您可以阅读此内容here、here、here 和 here。

【讨论】:

以上是关于SQL SSIS转换问题的主要内容,如果未能解决你的问题,请参考以下文章

SSIS高级转换任务—执行SQL语句

将SQL进程转换为SSIS包

SQL SSIS 使用派生列转换来处理空数据.. 替代方案?

由于 174 个 UNION ALL 语句,SQL Server 查询 SSIS 转换超时

什么 Oracle 数据类型可以通过 SSIS 在 SQL 中轻松转换为 BIT?

SSIS 在 Unicode 和非 Unicode 错误之间转换