【问题标题】:SQL Server 2012 ACE.OLEDB.12.0 from CSV来自 CSV 的 SQL Server 2012 ACE.OLEDB.12.0
【发布时间】:2017-06-05 22:11:46
【问题描述】:

我正在尝试使用下一个代码从 CSV 文件导入数据:

 select * FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0',
    'Text;Database=C:\Users\Evgeny\Desktop;HDR=Yes;FORMAT=Delimited(;)', 
    'SELECT * FROM [test.csv]'
);

我的数据有下一个结构,其中第一个字符串有列名:

"Name1";"Name2";"Name3"
"Value1";"Value2";"Value3"

但是查询执行后,结果只有一列,像这样:

Name1
Value1

可能是什么问题? 我怎么能不使用其他司机来解决它,因为在我的工作地点我做不到。

【问题讨论】:

    标签: sql-server csv oledb


    【解决方案1】:

    尝试使用OPENROWSETBULK

    SELECT * FROM OPENROWSET(
    BULK 'FILE.csv',
    SINGLE_CLOB) AS DATA;
    

    或使用 Microsoft 文本驱动程序:

    您也可以在Import error using Openrowset关注我的回答,这可能对您有帮助

    【讨论】:

    • 谢谢。但现在最简单的方法是将文件另存为 .xlsx=(
    • 我不明白你的意思。您是要导入 xlsx 还是 csv
    • 如果您点击此链接stackoverflow.com/questions/41883658/…,您会发现从导入 csv 中使用 oledb 提供程序并不是最佳实践。因为在导入包含多种数据类型的列时会导致问题
    • 问题是使用 csv 时它不起作用,但是当您将文件转换为 .xlsx ACE.OLEDB.12.0 for excel 12.0 时它可以正常工作并且不会是 " 字符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多