sql server:我可以在money字段中插入$

时间:2010-10-08 19:53:20

标签: sql sql-server etl

我将$5.99'(或尝试插入)等值插入money字段。它不喜欢美元符号

我实际上正在从csv文件中进行批量插入。 csv文件中的一列中包含money美元符号

是否可以帮助我找出如何使用$符号进行批量插入到money字段?

Msg 4864, Level 16, State 1, Line 1
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 2 (pricepaid).

我如何摆脱这个标志?

5 个答案:

答案 0 :(得分:5)

根据这个问题,以及您之前的问题herehere,我建议您将批量插入到临时保留表中,您可以在其中定义“钱”字段作为varchar。然后编写另一个SQL语句将数据从保存表移动到真实表。在此SQL语句中,您可以跳过不需要的列,从“money”字段中删除“$”并将其转换为货币数据类型等。

答案 1 :(得分:3)

不,您不能将货币符号插入货币领域。

它实际上只是一个带有友好名称的小数(19,4)。

答案 2 :(得分:3)

作为一种解决方法,您可以创建一个与目标具有相同架构的表,使用varchar列而不是money,并批量插入其中。然后更新导入的表以删除'$'并将数据复制到原始目标。

答案 3 :(得分:2)

你不能,Money只是一种比十进制略灵活的数字类型。使用符号存储您必须使用varchar

答案 4 :(得分:0)

其他人建议临时表。如果您使用临时表来保存CSV文件中的原始数据,则应该能够从包含$字符的MoneyVarchar字段直接转换为Char(即,不删除它。)

这在SQL 2008中对我有用。