我如何从sql server中的csv读取此行
广告,aixas,Aixàs,06,42.4833333,1.466666
当我这样做时我得到错误请告诉我这些值的类型以及将其添加到sql数据库表中的规则
答案 0 :(得分:2)
任何浮点类型,但可能double precision
作为准确性和存储之间的折衷。
float
是通用浮点类型,您可以指定。的精度。
Data
Type | Range | Storage
float -1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308 Depends on the
value of n
real -3.40E + 38 to -1.18E - 38, 0 and 1.18E - 38 to 3.40E + 38 4 Bytes
真实的同义词是float(24)。
双精度的同义词是float(53)。
如果您想要更准确,则应使用decimal
。
答案 1 :(得分:2)
听起来您的错误可能是由于CSV文件中的脏数据,而不是数据类型的问题......
答案 2 :(得分:1)
如果没有更多信息,例如实际的错误消息,数据库架构以及插入方式,很难说。
我不是数据库接口方面经验丰富的专家,因此当遇到问题时,如果数据库引擎没有引发合理的异常,我会采取措施来解决问题。首先,我允许字段为NULL,以便我可以将稀疏数据插入表中。然后我把我的INSERT语句减去,这样我就可以一次做一个字段了。继续在INSERT语句中添加越来越多的字段,直到它中断。它破裂的地方将告诉你下一步该去哪里。
如果所有字段都是TEXT,VARCHAR或某些字符串类型,那么INSERT语句失败的原因可能是您没有用"
包装字符串。或者,如果您的浮点字段实际上是模式中的浮点数,也许您传递的是字符串而不是浮点数。在我之前使用的两个数据库(MySQL和SQLite)中,数字不用引号括起来。
答案 3 :(得分:1)
与语言/字符集无关,以及'Aixàs'中'a'的重音?
答案 4 :(得分:0)
尝试使用float。