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转换问题的主要内容,如果未能解决你的问题,请参考以下文章
SQL SSIS 使用派生列转换来处理空数据.. 替代方案?
由于 174 个 UNION ALL 语句,SQL Server 查询 SSIS 转换超时