全部。
我编写了一个 SSIS 包,它从定义的数据库中查询数据并将它们放入特定位置的 CSV 文件中。然后,在 SSIS 包中,我调用了一个预先编写的批处理文件,它在指定目录中创建一个文件夹,将文件夹重命名为“yyyy-mm-dd”格式的日期,然后将创建的 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 包运行它时,一切正常。
触发代理作业的服务帐户具有完全的管理控制权。使用 SQL Server 代理将其安排为自动作业时,该文件夹未正确创建。我的想法是 SQL 代理要么无法触发批处理文件,要么它们不兼容。
有没有其他人遇到过这个或知道解决方法?