我在去年12月份获得了这个SSIS包。它只在周五早上运行。上周五它失败并出现此错误消息:
包:错误:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。来源:" Microsoft Access数据库引擎" Hresult:0x80004005说明:" Microsoft Access数据库引擎无法打开或写入文件&#; ServerShare \ IT \ Reports \ Export Templates \ YoderReport.xlsx'。它已由其他用户专门打开,或者您需要获得查看和写入其数据的权限。"。
我已经检查了其他几个相似的问题,但他们没有回答我的问题。我检查过以确保没有人打开该文件。
有问题的文件是一个模板,复制后再填充,所以开始时不应该让它打开。
我已尝试将RetainSameConnection
更改为True
,但没有区别。我已经在调试模式下运行它,它工作正常。
任何人都有任何想法如何清除它以便它再次自动运行?
更新
经过一些测试后,似乎文件正在获取数据,但是没有被复制。以下是我的设置:
File System Task
从我的模板中复制模板
文件夹到我的导出文件夹。Data Flow Task
Data Conversion
以将几个字段更新为正确的格式Excel Destination
用于输出。 (这是复制到“导出”文件夹的模板Flat File Destination
File System Task
返回控制流,此文件将文件从Export文件夹移动到共享驱动器上的最终目标当我从VS 2015运行它时它工作正常并创建文件。当我从SQL代理作业运行它时,它失败并出现上述错误消息。我唯一能想到的是Data Flow Task
Excel Destination
File System Task
是否在最终 <!-- Header -->
<div>
<nav id="mainNavbar" class="navbar navbar-expand-lg navbar-light justify-content-end" >
<div class="{{config.containerType}}">
<button
class="navbar-toggler navbar-toggler-right btn"
type="button" data-toggle="collapse"
data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false"
aria-label="Toggle navigation" (click)="toggleCollapsed()">
<span class="navbar-toggler-icon"></span>
</button>
<!--Logo-->
<a *ngIf="config.logo" routerLink="{{config.logo.routerLink}}" class="navbar-brand">
<img src="{{config.logo.src}}" alt="Image Description" class="img-fluid img-res" >
</a>
<!--End Logo-->
<div id="navbarSupportedContent" [ngClass]="{'collapse': collapsed, 'navbar-collapse': true}">
<ul *ngIf="config.menu.content" class="navbar-nav text-uppercase" >
<li *ngFor="let item of config.menu.content" class="menu-item dropdown ">
<a >
<span dropdown (onShown)="onShown()"
(onHidden)="onHidden()"
(isOpenChange)="isOpenChange()">
<a *ngIf="item.routerLink" href dropdownToggle (click)="false" [ngStyle]="item.style" routerLink="{{item.routerLink}}" routerLinkActive="menu-item-active ; selectSlider(item)">{{item.name}}</a>
<a *ngIf="!item.routerLink" href dropdownToggle (click)="false" [ngStyle]="item.style">{{item.name}}</a>
<div *ngIf="item.submenu">
<ul *dropdownMenu class="dropdown-menu">
<li *ngFor="let choice of item.submenu">
<a [ngStyle]="choice.style" class="dropdown-item" routerLink="{{choice.routerLink}}">{{choice.name}}</a>
</li>
</ul>
</div>
</span>
</a>
</li>
</ul>
</div>
</div>
</nav>
</div>
<!-- End Header -->
尝试复制文件之前释放文件?但如果是这样的话,为什么现在就开始发生呢?
答案 0 :(得分:0)
我认为文件路径中存在问题,因为您可以看到文件路径以一个反斜杠开头:
\ServerShare\IT\Reports\Export Templates\YoderReport.xlsx
如果它在网络上,可能应该以双反斜杠\\
开头
\\ServerShare\IT\Reports\Export Templates\YoderReport.xlsx
或者错过了分区 - &gt;路径不完整
检查文件路径提供给连接管理器的方式(如果您使用的是表达式)
同样基于此microsoft article,有两个可能的原因:
答案 1 :(得分:0)
Looks like an access issue. Ensure that the Agent Service Account is running with full rights to the network share path. Maybe you can try with your credentials on the Agent Server.
Also, Ensure that your Excel destination connection string supports .xlsx.
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\path\xxx.xlsb;Extended Properties="Excel 12.0;HDR=YES";
Changing “Excel 12.0
” to “Excel 12.0 Xml
” will tell the provider to output in .xslx format instead.