我支持将平面文件输入转换为SqlServer数据库表的ETL过程。该代码几乎是100%的T-SQL,并在数据库中运行。我不拥有代码,不能更改工作流程。我只能帮助配置接收文件数据并将其转换为表格数据的“翻译”SQL(稍后会详细介绍)。使用逗号分隔符将nVarChar转换为十进制数
现在的免责声明,都闪开......
我们的一个文件提供者最近改变了他们是如何代表的货币金额从'12345.67'
到'12,345.67'
。我们的SQL转换值看起来像SELECT FLOOR(CAST([inputValue] AS DECIMAL(24,10)))
并且不再有效。也就是说,这个逗号打破了演员阵容。
考虑到我有终值存储为Decimal (24,10)
数据类型(是的,我意识到FLOOR
盖过后的小数点精度 - 设计者是不是在与客户同步),我该怎么办有效地投射这个字符串?'
谢谢你的想法。
做了这些答案的任何解决您的问题? – 2010-08-19 13:05:32
@KM:我现在正在与我们的DBA小组讨论这些建议。从我的结尾,提出的常用方法(使用Replace())似乎可行。将尽快更新。 – SethO 2010-08-19 14:16:50