Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/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
Sql server 无法通过SSIS连接到Excel_Sql Server_Excel_Ssis_Oledb_Etl - Fatal编程技术网

Sql server 无法通过SSIS连接到Excel

Sql server 无法通过SSIS连接到Excel,sql-server,excel,ssis,oledb,etl,Sql Server,Excel,Ssis,Oledb,Etl,SSIS无法识别Excel文件 错误: 无法从连接管理器“Excel连接管理器”中检索表信息 无法使用连接管理器“Excel连接管理器”连接到源 我已尝试安装32位可再发行版本,解决了此错误,但当我使用SQL存储过程在外部运行此版本时,它失败了,如果我安装64位可再发行版本,则会解决此问题,但在SSIS中失败了 因此,我需要在SP中运行32位,在SSIS中运行64位,但我无法同时安装这两个。是否有解决此问题的方法。有两种解决方案: (1)在SSIS中以32位运行包 尝试以32位模式运行包: Go

SSIS无法识别Excel文件

错误:

无法从连接管理器“Excel连接管理器”中检索表信息
无法使用连接管理器“Excel连接管理器”连接到源

我已尝试安装32位可再发行版本,解决了此错误,但当我使用SQL存储过程在外部运行此版本时,它失败了,如果我安装64位可再发行版本,则会解决此问题,但在SSIS中失败了

因此,我需要在SP中运行32位,在SSIS中运行64位,但我无法同时安装这两个。是否有解决此问题的方法。

有两种解决方案:

(1)在SSIS中以32位运行包

尝试以32位模式运行包:

GoTo Project properties >> Debugging >> Run64BitRuntime  = False

(2)安装AccessDatabaseEngine 32位和64位

假设您所说的“可再发行”是指Access数据库引擎

如果需要在32位安装的同时安装AccessDataBaseEngine x64,则需要在被动模式下运行安装:

被动模式安装步骤

  • 在“开始”菜单下的Windows搜索框中键入
    cmd
    ,然后选择cmd.exe,打开命令提示符
  • 键入64位Access Database Engine 2010安装文件的文件路径和文件名,然后键入空格和
    /passive
    (这样运行安装时不会显示任何错误消息)
  • 在“开始”菜单下的Windows搜索框中键入
    regedit
    ,然后选择
    regedit.exe
  • 删除或重命名以下注册表项中的
    mso.dll
    注册表值:

    "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths" 
    
  • 更多详细信息和屏幕截图可在下面的链接中找到

    参考


    通过使用dtexec 32位实用程序以32位模式运行SSI,您可以将两者保持为32位

    DTExec 32位位于:

    C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn
    
    C:\Program Files\Microsoft SQL Server\90\DTS\Binn
    
    DTExec 64位位于:

    C:\Program Files (x86)\Microsoft SQL Server\90\DTS\Binn
    
    C:\Program Files\Microsoft SQL Server\90\DTS\Binn
    
    请参阅此项了解如何运行


      • 因为我遇到这个问题时使用了相同的错误代码--


        在创建连接管理器时,您也可能选择了错误的excel版本,例如excel 2007-2010与excel 2016等。单击项目>>属性>>调试:将Run64BitRuntime更改为false

        2.如果不起作用,请使用excel 97-2003工作簿格式保存excel工作,并将excel连接管理器保存在SSIS中


        3.如果您想使用Excel(xlsx)-2007版等新格式,还可以尝试在工作簿打开时从工作簿中读取数据。这与以32位模式运行包相结合,有望解决此问题


        您好,我已尝试过此方法,但不幸的是,安装两个版本都没有帮助。一旦安装了32位,如果被动安装64位,SSIS包将无法工作。作为一种解决方法,我正在卸载和安装相关包(32/64)当我工作时。@DhivakharVenkatachalam您能提供程序代码吗?您应该坚持同时安装两个版本。这是通常的解决方案您好。当软件包以64位模式运行时,excel和access不工作是正确的吗?而在生产中,您必须使用32位模式。有关此主题的文章有冲突。@v变量我有一段时间没有使用Excel或Access。但我记得,这取决于安装的AccessDatabaseEngine和Office版本。请确保您安装了上述答案中提到的32位和64位数据库引擎。您正在“使用SQL存储过程在外部运行”和“在SSIS中运行”“。我假设这意味着运行带有
        目录的包。创建\u执行
        并在SQL Server数据工具中运行。请将您的问题编辑为具体问题。在这个问题上有足够的混乱,没有模糊的描述。无论如何,关于如何将32+64位ACE一起安装,有许多指南。我没有联系,但这家伙成功了。