すべて。
定義されたデータベースからデータをクエリし、それらを特定の場所のCSVファイルに配置するSSISパッケージを作成しました。次に、SSISパッケージ内で、指定したディレクトリにフォルダーを作成する事前に作成されたバッチファイルを呼び出し、フォルダーの名前を「yyyy-mm-dd」形式の日付に変更してから、作成したCSVファイルを新しく作成したCSVファイルに移動します。作成されたフォルダ。
次のようにファイルコードをバッチ処理します。
@echo off
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET CDATE=%%B
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('echo %CDATE%') DO SET dd=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('echo %CDATE%') DO SET yyyy=%%B
SET date=%date:~6,6%-%date:~3,2%-%date:~0,2%
md \\remote_folder\%date%
move /Y \\remote_folder\*.csv \\remote_folder\%date%
exit
これをSSISパッケージから実行すると、すべてが正常に機能します。
エージェントジョブを起動するサービスアカウントは、完全な管理制御を持っています。これをSQLServerエージェントを使用して自動化されたジョブとしてスケジュールすると、フォルダーが正しく作成されません。私の考えでは、SQLエージェントはバッチファイルの起動に問題があるか、互換性がありません。
他の誰かがこれに遭遇したか、回避策を知っていますか?