0

この質問を削除して書き直したのは、私が明確ではなかったと思うためであり、フラストレーションを引き起こしました。

Excel シートを作成して入力する SSIS パッケージがあります。パッケージは完全に実行され、必要に応じてファイルを作成し、SQL Server エージェントからスケジュールに従って問題なく実行できます。

この問題は、VB スクリプトを実行して Excel ファイルの特定の行を削除するスクリプト タスクを実行しようとすると発生します。

Public Sub Main()
    '


    Dim xlApp As Excel.Application
    Dim xlSheet As Excel.Worksheet

    xlApp = New Excel.Application
    xlApp.Workbooks.Open(Dts.Variables("NewFileName").Value.ToString)
    xlSheet = xlApp.Workbooks(1).ActiveSheet


    xlSheet.Rows(4).Delete()

    xlApp.Workbooks(1).Save()
    xlApp.Workbooks(1).Close()
    xlSheet = Nothing

    '
    Dts.TaskResult = ScriptResults.Success
End Sub

現在、これは BIDS 環境内で完全に実行され、まさに私が必要としているものを実行します。ただし、パッケージがデプロイされると、ジョブが失敗してエラーが発生します

ソース: ヘッダー行の削除説明: System.Reflection.TargetInvocationException: 呼び出しのターゲットによって例外がスローされました。---> System.Runtime.InteropServices.COMException (0x800A03EC): Microsoft Excel はファイル 'G:\Folder\Folder1\Status File\Status26032015.xls' にアクセスできません。いくつかの理由が考えられます。ファイル名またはパスが存在しません。? ファイルは別のプログラムによって使用されています。? 保存しようとしているブックは、現在開いているブックと同じ名前です。

パッケージは、G: にアクセスできる ServerName\Administrator として実行されます (同じ変数を使用してファイルを作成すると失敗するため)。私がチェックしたすべての記事は SQL Server エージェントのアクセス許可を指していますが、ジョブの 90% が実行されているため、G ドライブにファイルを作成することを含め、アクセス権が必要です。

4

2 に答える 2

3

SQL エージェント ジョブを実行しているサーバーにこのフォルダーを追加してみてください。C:\Windows\SysWOW64\config\systemprofile\Desktop

私が直面していた同様の問題を解決しました。

詳細はこちら: https://social.msdn.microsoft.com/forums/sqlserver/en-US/34e5596a-4d02-4499-8a4e-8dad9fa27528/ssis-2008-r2-script-task-fails-when-run-仕事として

于 2015-06-22T13:14:31.653 に答える
-1

SQL Server エージェント プロセスは、マップされたドライブを変換できませんG:\

これは、完全な Windows セッションを開始せず、ユーザーのプロファイルを読み込まないためだと思います。

ドライブ文字の参照を URI 形式に変換します。\\myserver\fileshare

于 2015-04-01T04:26:31.920 に答える