【问题标题】:SQL Server : convert string to Int when importing from CSVSQL Server:从 CSV 导入时将字符串转换为 Int
【发布时间】:2013-10-14 07:03:20
【问题描述】:

在我的 CSV 文件中,AuthorID 是字符串格式

在导入 CSV 时,是否可以在 SQL Server 查询中将 String 转换为 Integer

BULK
INSERT Author
FROM 'C:\author.csv'
WITH
(
FIRSTROW = 2,
<Convert Column 1 to Integer>
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO

【问题讨论】:

  • 如果你有一列 int 类型的列并且 csv 中的所有值都是真正的数字,它应该可以工作。
  • 同意。这就是 CSV 导入的重点。 CSV 与类型无关,因此它必须从目标列类型推断出这一点。你有任何错误吗?在这种情况下,您也应该在问题中发布它们。
  • 这是错误:消息 4864,级别 16,状态 1,第 1 行第 2 行第 1 列 (pubId) 的批量加载数据转换错误(指定代码页的类型不匹配或无效字符)。

标签: sql-server string csv import int


【解决方案1】:

对于数据操作口哨数据传输使用 SSIS 包,我不认为您可以使用批量插入语句口哨对数据本身做任何事情,您将其插入表中。目标列应该具有适当且正确的 DATATYPE 并且它应该可以工作。
在您的情况下,如果您将目标列的数据类型设置为 INT 并且您的数据中没有任何字符串,它应该可以正常工作。
如果您仍然遇到错误,那么您应该检查您正在插入的数据,如果有任何数据需要更改才能插入 INT 数据类型列,那么您可能不得不考虑使用 SSIS 包。

【讨论】:

    猜你喜欢
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 2015-07-13
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多