日期字段上出现批量错误,但插入到SQL Server中

时间:2019-03-21 17:36:00

标签: sql-server bulkinsert

我正在尝试将其批量插入表中,但我一直收到此错误

  

第4级第1线第2行4864消息
  第1行第1列(HEURE)的批量加载数据转换错误(类型不匹配或指定代码页的字符无效)。

这是我的桌子的创建脚本

0.294648

这是我要用于批量插入的文件的内容

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[GST_TempDelete]
(
    [HEURE] [DATETIME] NULL,
    [Typebase] [FLOAT] NULL,
    [DATE] [DATETIME] NULL,
    [CHP] [NVARCHAR](4000) NULL,
    [tab] [NVARCHAR](4000) NULL,
    [ref1] [NVARCHAR](400) NULL,
    [ref2] [NVARCHAR](400) NULL
) ON [PRIMARY]
GO

这是批量插入查询

14:50:07|1|21/03/2019|SOMETEXT|PARAMbase|00000|54141|
14:50:07|1|21/03/2019|TEST|TEST|00000|54141|

当我尝试使用大文件中的值通过SET LANGUAGE FRENCH BULK INSERT GST_TempDelete FROM 'D:\TEST_DATA\TEMP\bulkInsert.txt' WITH (FIELDTERMINATOR ='|',ROWTERMINATOR = '|') 插入数据时,它可以工作,但是INSERT INTO本身仍然会失败。

这是bulk insert查询:

INSERT INTO

请帮我解决这个问题。

预先感谢

2 个答案:

答案 0 :(得分:0)

解决了问题:它在日期栏中。 '21 / 03/2019'是正确的值。

var count = parseInt(localStorage('counter')) || 0; // Get value from localStorage 
count = count + 1;
localStorage.setItem('counter', count); // Set new value to localStorage

textArea.className = 'app-TextArea';
textArea.style.margin = '8px';
textArea.setAttribute("placeholder", "Follow up # " + count); // Use new value

widget.root.descendants.Panel1.getElement().appendChild(textArea);

答案 1 :(得分:0)

  

14:50:07 | 1 | 21/03/2019 | SOMETEXT | PARAMbase | 00000 | 54141 |

CSV文件的第一列显然是时间格式。在表的DDL中具有DATETIME类型时。因此,似乎它已从DATETIME更改为TIME

CREATE TABLE [dbo].[GST_TempDelete](
    [HEURE] [time] NULL,
    [Typebase] [float] NULL,
    [DATE] [datetime] NULL,
    [CHP] [nvarchar](4000) NULL,
    [tab] [nvarchar](4000) NULL,
    [ref1] [nvarchar](400) NULL,
    [ref2] [nvarchar](400) NULL
) ON [PRIMARY]
GO

SET LANGUAGE FRENCH 
BULK INSERT GST_TempDelete   FROM 'D:\TEST_DATA\TEMP\bulkInsert.txt' WITH (FIELDTERMINATOR ='|',ROWTERMINATOR = '|')
  

当我尝试使用插入值将数据插入到   批量文件,它可以工作,但批量插入本身会不断失败

这可能是因为:

  

BULK INSERT强制执行严格的数据验证和数据检查   从文件中读取可能会导致现有脚本失败的文件   对无效数据执行。

参考:https://docs.microsoft.com/en-us/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-2017