gpt4 book ai didi

sql-server - Money 数据类型溢出

转载 作者:行者123 更新时间:2023-12-03 03:38:39 25 4
gpt4 key购买 nike

我正在开发 SSIS 2008。我的任务是从 OLE BD 中的表中获取统计信息并将其保存在平面文件中。我正在使用保存在 OLE DB 中的表中的两个字段,这些字段的数据类型为 NVARCHAR。金额和货币是两个字段。我想要金额的总和,因此尝试使用 Decimal 和 Numeric 进行转换,但它不起作用,所以使用 Money 并且它起作用了。

我的查询是:

select sum(cast(PAID_AMOUNT as money)) as Amount, CUR as AmountCurrency, COUNT(*) as Records 
from Raw_table group by CUR order by 2

我正在使用 OLE DB 源编辑器 - SQl 命令选项来查询语句。单击预览按钮将显示结果,没有任何错误。

但是当我执行任务时出现错误:

[Inv Stats [1]] Error: There was an error with output column "Amount" (17) on output "OLE DB Source Output" (11). The column status returned was: "Conversion failed because the data value overflowed the specified type.".

因此我通过重定向错误捕获了平面文件中导致错误的行。和捕获的文件:

Amount,AmountCurrency,Records,ErrorCode,ErrorColumn
3073904391,JPY,9806,-1071607691,17

我是 SSIS 新手,对数据类型了解甚少。请帮忙。如果我的描述不清楚,我们深表歉意,因为这是我的第一篇文章。

最佳答案

来自 SQL 查询的值,类型为 money,值为 3073904391,将溢出 [DT_I4] 类型的列>。我不确定您是如何在 OLE DB Source 中使用该查询而最终得到 [DT_I4] (当我从头开始设置它时,它默认为 货币 [DT_CY]),但我建议将高级编辑器 > 输入和输出属性 > 输出列中的数据类型更改为货币 [DT_CY]

关于sql-server - Money 数据类型溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47470389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com