我正在尝试导入具有数字和字母数字值的列(从.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'
)
这些文章中的其他详细信息:
问题内容: 我收到以下导入代码出现错误: 代码:包主 错误: 鉴于我已经将文件存储在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上