无法从 导入我的数据。CSV 文件导入 SQL Server 表

Cannot Import my Data from .CSV file into SQL Server Table

提问人:مجتبی حکیمیان 提问时间:8/27/2023 最后编辑:marc_sمجتبی حکیمیان 更新时间:8/27/2023 访问量:97

问:

这是我的规格:

  • 我的 SQL Server:Microsoft SQL Server 企业版 2019 (v15.0.2000.5)
  • 我的 Windows:Windows 10 企业版 LTSC 2021
  • 我的办公室 : Office 2016
  • 我的CSV文件完整路径:F:\TaxStuff\StuffIDs.csv

我有一个包含五十万条记录的大文件,我想将它们插入到我的 SQL Server 表中。StuffIDs.csv

这是文件中的示例记录:StuffIDs.csv

ID Type Date RunDate ExpirationDate SpecialOrGeneral TaxableOrFree Vat
 VatCustomPurposes DescriptionOfID
 
2710000173618 شناسه عمومی وارداتی(کالا) 1401-07-24 1400-10-13 عمومی
 مشمول 9 9 پودر شیر خشک صنعتی لبنیات فرآورده دامی

 2720000173617 شناسه عمومی تولید داخل(کالا) 1401-07-24 1400-10-13 عمومی
 مشمول 9 9 پودر شیر خشک صنعتی لبنیات فرآورده دامی
 
 2710000160892 شناسه عمومی وارداتی(کالا) 1401-07-24 1400-10-13 عمومی
 مشمول 9 9 کره حیوانی لبنیات فراورده دامی
 
2720000160891 شناسه عمومی تولید داخل(کالا) 1401-07-24 1400-10-13 عمومی
 مشمول 9 9 کره حیوانی لبنیات فراورده دامی
 
 2710000038252 شناسه عمومی وارداتی(کالا) 1401-07-24 1400-10-13 عمومی
 مشمول 9 9 کشک طعم دار لبنیات فرآورده دامی

请记住,我在该文件中的第一行是标题,并且是:

ID  Type  Date  RunDate  ExpirationDate  SpecialOrGeneral TaxableOrFree  Vat  VatCustomPurposes  DescriptionOfID

我试过什么:

CREATE TABLE StuffIDs 
(
    ID NVARCHAR(MAX),
    Type NVARCHAR(100),
    Date DATE,
    RunDate DATE,
    ExpirationDate DATE,
    SpecialOrGeneral NVARCHAR(50),
    TaxableOrFree NVARCHAR(50),
    Vat INT,
    VatCustomPurposes INT,
    DescriptionOfID NVARCHAR(MAX)
)
GO

BULK INSERT StuffIDs
FROM 'F:\TaxStuff\StuffIDs.csv'
WITH (
    FIRSTROW = 2, -- Skip the header row
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
)

我得到的错误:

消息 4864,级别 16,状态 1,第 16
行大容量加载数据转换错误(指定代码页的类型不匹配或无效字符)为第 2 行第 3 列(日期)。

消息 4863,级别 16,状态 1,第 16
行 第 3 行第 2 列 (类型) 的大容量加载数据转换错误 (截断) 。

消息 4863,级别 16,状态 1,第 16
行 第 4 行第 2 列 (类型) 的大容量加载数据转换错误 (截断) 。

原始文件 : https://ufile.io/ts1zfy3m

sql-server csv sql-server-2008-r2 批量插入

评论

4赞 Yitzhak Khabinsky 8/27/2023
源 .csv 文件中的 DATE 数据应采用 YYYY-MM-DD 格式。我建议创建一个临时表,其中日期列将作为 VARCHAR(...) 数据类型。
0赞 AlwaysLearning 8/28/2023
我还建议将你的日期分列。SQL Server 的数据类型需要公历上的值,需要先将 Jalali 日历转换为公历,然后才能将其存储在数据类型中。varchar(...)datedate
2赞 Alex 8/28/2023
“FIELDTERMINATOR = ',', ” - 根据您的配置,您的文件使用逗号作为列分隔符。在您的样本数据中,我们可以在哪里找到彗发?BULK INSERT

答: 暂无答案