【问题标题】:Msg 4864, Level 16, State 1, Line 19消息 4864,第 16 层,状态 1,第 19 行
【发布时间】:2017-01-16 14:42:17
【问题描述】:

我收到以下错误。

Msg 4864,级别 16,状态 1,第 19 行批量加载数据转换错误 (指定代码页的类型不匹配或无效字符) 第 1 行,第 4 列 (G)。消息 4864,级别 16,状态 1,第 19 行批量加载 数据转换错误(类型不匹配或无效字符 指定的代码页)用于第 2 行第 4 列 (G)。

输入文件:NYM,' 2016,' Ruggiano', CF', 8', 20', 4', 7', 0', 0', 2', 6', 2', 9', 0', 1', 0.35', 0.409', 0.65', 1.059', 0', 0', 0', 0', 2016',

Team (PK, varchar 28, Not Null)  
Player (Varchar (30) Not Null)      
POS (Varchar (30) Not Null)
G (int, Not Null)          


Bulk
Insert Player_Stats
From 'C:\Users\Robert\Documents\test_Input.txt'
With
(
Fieldterminator = ',',
Rowterminator = '0x0A'
)        

【问题讨论】:

  • 您的“输入文件”信息在这个问题中是否正确显示?因为它的位置似乎有很多单引号字符,使它们看起来像分隔符,但它们似乎不匹配。

标签: sql sql-server


【解决方案1】:

您尝试插入的数据类型与列类型不匹配。就是这么简单。

【讨论】:

  • 在这种情况下,我插入数字“4”。 INT 类型不正确?最大的数字是 3 位数。我应该使用什么列类型?
  • @RobertTritt 在我看来你在插入`4'`。您没有看到文件中的其他字符吗?
  • 这里是输入文件:文件中还有其他字符。 NYM,'2016,'Ruggiano',CF',8',20',4',7',0',0',2',
  • @RobertTritt 4' 不是整数。如果用逗号分隔,它是一个字符串。不要过于复杂
  • 谢谢。看来我需要更好地理解数据类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-07
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-12
相关资源
最近更新 更多