我的目标是让我想通过 OPENROWSET 样式查询导入一个文件(它来自另一个系统)。
Tee查询看起来像这样:
select [NoName] from openrowset('MSDASQL'
,'Driver={Microsoft Access Text Driver (*.txt, *.csv)};
DefaultDir=c:\filedir'
,'select * from "file.lst"')
如果我将文件设为 .csv ,则可以正常使用。但是,如果它没有CSV或TXT扩展名,则会抛出以下错误,似乎无法找到解决方案。
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Text Driver] Cannot update. Database or object is read-only.".
Msg 7350, Level 16, State 2, Line 1
Cannot get the column information from OLE DB provider "MSDASQL" for linked server "(null)".
另外,(虽然我可以在其他地方找到它),我需要让第一行'BLANK',这样它就不会错过数据(没有标题行)。有没有办法在没有 BULK 的情况下使用 OPENROWSET 基本上将所有行都包含为数据?
答案 0 :(得分:0)
这是security feature,只能在注册表中禁用。默认情况下,只允许使用以下文件扩展名:txt, csv, tab, asc, htm, html
访问97:
HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.5\Engines\Text\DisabledExtensions
访问2000:
HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Text\DisabledExtensions