1

パッケージを作成し、SQL サーバーにロードしました。パッケージはフォルダーに移動し、読み取りと Excel を実行し、Excel をテーブルにダンプしてからアーカイブします。

パッケージを通常どおり ( を介してBIDS) 実行すると、完全に正常に動作します。

しかしSSMS 、次の行を使用して実行すると:

exec master.dbo.xp_cmdshell 'C:\"Program Files (x86)"\"Microsoft SQL Server"\100\DTS\Binn\DTExec.exe /DTS "<package location>" /SERVER "<Server>" /CHECKPOINTING OFF  /REPORTING V'

(パッケージ内の各ループの) Excel 名を取得するセクションでは、何も見つからないことが報告されています。

   Description: The For Each File enumerator is empty. The For Each File enumerator did not find any files that matched the file pattern, or the specified directory was empty.

Excel を読み取るには、パッケージを 32 ビット モードで実行する必要があるため、32 ビットのdtexec場所を使用しています。

何が起きているか知っている人はいますか?

4

1 に答える 1

1

私の意見では、使用create SSIS Type Jobして変更する必要があります:

exec master.dbo.xp_cmdshell 'C:\"Program Files (x86)"\"Microsoft SQL Server"\100\DTS\Binn\DTExec.exe /DTS "<package location>" /SERVER "<Server>" /CHECKPOINTING OFF  /REPORTING V'

と:

EXEC dbo.sp_start_job 'job_name';

また、cmd shell を実行するときに使用するアカウントも確認します。特定のディレクトリまたは別の環境変数を読み取るための十分な権限がないと思われます。

于 2015-11-04T15:45:20.253 に答える