Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Jet访问SSIS平面文件_Ssis_Jet_Flat File - Fatal编程技术网

通过Jet访问SSIS平面文件

通过Jet访问SSIS平面文件,ssis,jet,flat-file,Ssis,Jet,Flat File,有没有一种方法可以使用SSIS中的Microsoft.Jet.OLEDB.4.0驱动程序访问平面文件 通过FlatFile源的访问要好得多,这只是关于是否有一种方法可以使用Jet驱动程序来实现的问题。这似乎是一个有趣的问题,所以我对它进行了一些讨论。是的,你绝对可以使用JET驱动程序读取平面文件。请参阅“打开文本”部分 默认情况下,它希望文件是CSV,但您可以在中指定格式,该格式将位于连接管理器指向的同一文件夹中 关于CM需要注意的一点是,它指向文本文件的文件夹,而不是特定的文件 创建连接管理器

有没有一种方法可以使用SSIS中的Microsoft.Jet.OLEDB.4.0驱动程序访问平面文件


通过FlatFile源的访问要好得多,这只是关于是否有一种方法可以使用Jet驱动程序来实现的问题。

这似乎是一个有趣的问题,所以我对它进行了一些讨论。是的,你绝对可以使用JET驱动程序读取平面文件。请参阅“打开文本”部分

默认情况下,它希望文件是CSV,但您可以在中指定格式,该格式将位于连接管理器指向的同一文件夹中

关于CM需要注意的一点是,它指向文本文件的文件夹,而不是特定的文件

创建连接管理器时,需要进入“全部”选项卡(选择本机OLE DB\Microsoft Jet 4.0 OLE DB提供程序后),然后添加扩展属性。我能够使用CSVDelimited和刚刚分隔的FMT使其工作(因为我的示例文件是csv)

在连接管理器属性中,用逗号替换源文件中的制表符并将FMT设置为TabDelimited似乎不起作用,但我没有尝试创建如BOL文章所示的schema.ini文件

无法通过定义文本文件的所有特征 连接字符串。例如,如果要打开固定宽度的 文件,或者要使用逗号以外的分隔符,必须 在Schema.INI文件中指定所有这些设置

我的CM上ConnectionString的完整值如下所示

Data Source=C:\tmp\so\;Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="text;HDR=Yes;FMT=CSVDelimited;";
如果软件包在设计时工作正常,但一旦运行就会崩溃,那么JET驱动程序在64位机器上只能以32位的形式提供,错误消息会指出这一点

SSIS错误代码DTS_E_无法从ConnectionManager获取重新连接。 对连接管理器的AcquireConnection方法调用 “OLEDB_-JET”失败,错误代码为0xC0209303。可能有错误 在此之前发布的消息,其中包含有关 AcquireConnection方法调用失败

解决方法是从命令行以32位模式运行它,如

C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn>.\dtexec /file C:\sandbox\SSISHackAndSlash\SSISHackAndSlash\so_JetFlatFile.dtsx

嗨,我试过了,很管用。只是一个简单的后续问题:我使用了OleDB数据源,测试连接成功。之后,我使用我定义的OleDB数据源向平面文件添加了一个OleDB源,并点击preview=>Error。我太放松了