当前位置: 首页 > 面试题库 >

使用Openrowset导入错误

辛承志
2023-03-14
问题内容

我正在尝试导入具有数字和字母数字值的列(从.csv文件),但是当我运行该openrowset过程时,它会正确导入数字行,但对于字母数字值,默认为null

表A

ID,A,B,C
1,12,hh,i
2,ab12,tt,b
3,2,aa,o
4,bc12,ee,l

使用的代码

SELECT 
    * 
FROM 
    OPENROWSET
        (
            'Microsoft.ACE.OLEDB.12.0','Text;Database=C:\;IMEX=1;','SELECT * FROM abc.csv'
        ) t

我用过IMEX =1,一点都没有改变。


问题答案:

问题原因是Oledb提供程序

导入具有混合数据类型列的csv文件或excel文件时,它将用替换非主要类型null。( 使用Oledb或Ace.Oledb

解决方法

您可以通过添加包含字符串值的第一行,然后在完成提示后将其删除来进行一些变通

ID,A,B,C
0,a,a,a
1,12,hh,i
2,ab12,tt,b
3,2,aa,o
4,bc12,ee,l

如果使用,它将解决此问题 IMEX=1

这会将列读取为字符串,将ID列读取为数字。(使用0)

或将HDR=NO属性添加到连接字符串,以便标头是导入的第一行(其所有值都是字符串)

在本文中阅读有关混合数据类型的更多信息

其他方法

或者尝试在没有aceoledb提供程序的情况下实现此目的,而只是以其他方式导入csv文件,如下所示:

使用Microsoft文本驱动程序

SELECT * FROM OPENROWSET('MSDASQL',
'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=C:\;',
'SELECT * FROM abc.csv')

使用批量插入

CREATE TABLE dbo.MyTable 
(ID INTEGER,
 A VARCHAR(50),
 B VARCHAR(50),
 C VARCHAR(50)
)

BULK INSERT dbo.MyTable
FROM 'C:\abc.csv'
WITH 
  (
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
  )

这些文章中的其他详细信息:

  • 如何使用OPENROWSET导入csv文件?
  • T-SQL-使用OpenRowSet读取CSV文件 (详细教程)


 类似资料:
  • 问题内容: 我收到以下导入代码出现错误: 代码:包主 错误: 鉴于我已经将文件存储在api文件夹下,因此导入不起作用是有原因的吗? 我正在下面使用在main.go中 问题答案: 编译器会寻找包的 实际使用 ..而不是它存在的事实。 您需要使用该软件包中的某些内容。或删除导入。例如: 如果您在源文件中不使用该包中的任何内容,则无需导入。也就是说,除非您希望函数运行。在这种情况下,您可以使用忽略符号。

  • 我想将Django项目从测试服务器迁移到Apache(CentOS上的2.2.15版本)。我使用[1]安装了mod_wsgi,并尝试使用[2]将我的项目装载为wsgi应用程序。 我遵循Hello-World示例(有帮助的SO-thread[3]),放置了测试wsgi。py文件与我现有的Django项目文件(wsgi.py)位于同一目录中。这是可行的(例如,我可以通过wget访问)。 在此基础上,我

  • 问题内容: 借助Halfdans的建议,在首先安装git之后,我能够成功使用goinstallgithub.com/hoisie/web.go而没有任何错误。但是,现在当我尝试编译给出的示例代码时,go找不到了Web包。我得到了错误 关于此代码 为了识别包装,我需要做些特别的事情吗?我在$ GOROOT / src / pkg / github.com / hoisie / web.go / we

  • 我正试着用这本手册开始tensorflowhttps://www.tensorflow.org/install/install_windows 所有安装都成功完成,我正在使用python 3.5.2和最新版本的pip,遇到这个错误,有人告诉我应该怎么做吗? 在swig\parth\AppData\Local\Programs\Python35\lib\site-p tensorflow\Pytho

  • 我有一个关于在android studio中导入import.hello.hello时出错的问题,如下图所示。请给我解决方案如何解决这个错误

  • 问题内容: 任何人都可以告诉我在哪里可以找到JFreeChart的完整版本?我也从sourceforge页面下载了JCommon和JFreeChart,但是JFreeChart仅包含jfreechart- demo.jar,因此,即使我在Eclipse中正确添加了库,它也不起作用。 非常感谢! 问题答案: 解压缩后,所需的JAR文件位于目录中。 例如,以下命令行在Unix上运行;在Windows上