【发布时间】:2019-06-09 23:14:11
【问题描述】:
如何在SSIS中的数据转换转换过程中将字符串转换为货币?
我的源文件是一个 Excel 文件。我添加了数据转换转换以将Price 列转换为数据类型“currency[DT_CY]”。
Source value : $50,240.30
Expected result : 50240.30
SQL 目标表的价格列的数据类型为:Money
但是,转换失败并出现以下错误:
The "Data Conversion.Outputs[Data Conversion Output].Columns[Price]" failed because error code 0xC020907F occurred, and the error row disposition on "Data Conversion.Out
这个查询工作..很好..但是,这个查询只有在我们收到表的数据后才会应用。
我们正在尝试在将数据作为“Money”数据类型加载到表中时获取数据。
select convert(MONEY, [Price]) AS [Price] , * from dbo.StagingTable
根据 Nick 的评论,源文件转换工作正常。 但是,我们需要将字符串转换为 Money 数据类型。
来源价格:55,176.80 美元
派生列表达式:REPLACE(REPLACE([Price],"$",""),",","")
数据类型:DT_WSTR
输出价格:55176.80
【问题讨论】:
-
先尝试删除/替换
$和,字符 -
那将在派生列中带有 substring ,对吧?
-
是的,它在派生列中,但使用类似
REPLACE(REPLACE(<yourcolumn>,'$',''),',','')docs.microsoft.com/en-us/sql/integration-services/expressions/… -
哦...也许 SSIS 表达式使用
"而不是'用于字符串文字。我不记得了,帮助不包含任何例子,试试REPLACE(REPLACE(<yourcolumn>,"$",""),",","") -
我刚刚注意到@Hadi 在他的回答中澄清了这一点 - 如果它是正确的,请接受他的回答
标签: sql sql-server ssis etl sql-server-data-tools