视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Errorcode:0x80004005"TheMicrosoftAccessdataba
2020-11-09 07:18:40 责编:小采
文档


前两天做了一个 SSIS 的 Package ,用来循环 Excel 然后倒入到数据库。在开发环境可以正常工作,但是真正部署到 SQL Agent 后发现 Job 一直失败。 打开 Job History 看到下面的错误: Description: SSIS Error CodeDTS_E_OLEDBERROR. An OLE DB error hasocc

前两天做了一个SSIS的Package,用来循环Excel然后倒入到数据库。在开发环境可以正常工作,但是真正部署到SQL Agent后发现Job一直失败。

打开Job History看到下面的错误:

Description: SSIS Error CodeDTS_E_OLEDBERROR. An OLE DB error hasoccurred. Error code: 0x80004005. An OLEDB record is available. Source:"Microsoft Access Database Engine" Hresult: 0x80004005 Description: "The Microsoft Accessdatabase engine cannot open or write to the file ''. It is already openedexclusively by another user, or you need permission to view and write itsdata.".

单单看上面的错误一般会认为是权限不够或者文件被打开。但是我看了一下文件夹目录根本没有文件,而且权限也没有问题。直接在开发环境运行也正常。

从网上查了一下发现虽然使用了变量来保存Excel名称,但是由于在设置Excel Connection Manger的时候,指定了Excel文件地址的(如图),所以在部署完成后还是会去查找这个文件。

由于这个文件被删除了,SSIS Job在运行的时候找不到就报错(感觉这个设计很垃圾)。

解决办法:

在原始的Excel地址重新放一个Excel文件,可以让SSIS Job找到。

另外可以考虑将Delay Validation的属性调整为”Ture” 这样在运行的时候验证。

下载本文
显示全文
专题