我需要将文件 abcd.txt , ijk.txt 从 C:\files 移动到它们各自的文件夹 C:\moved_files\abcd\abcd.txt 和 C:\moved_files\ijk\ijk.txt ,其中文件名和目标文件夹名称应该相同,文件夹已经存在;
我在 sql server 数据库中有以下存储过程,当提供文件名作为输入时,它返回文件夹名称,
我已将此存储过程放在 SSIS 的执行 sql 任务中,我现在希望此存储过程的输出,即文件夹名称,应被文件系统任务作为目标变量,以将文件移动到相应的文件夹。
alter PROCEDURE [dbo].[FOLDER]
(
@CSVFILENAME AS VARCHAR(600)
)
AS
BEGIN
DECLARE @Index AS INT
DECLARE @FOLDER AS VARCHAR(50)
DECLARE @CSVFILE AS VARCHAR(500)
SET @CSVFILENAME = REPLACE(UPPER(@CSVFILENAME),'\\dm2nas1\U\sql_data\in\','')
SET @CSVFILE = @CSVFILENAME
SET @CSVFILENAME = REPLACE(UPPER(@CSVFILENAME),'.csv','')
SET @Index = CHARINDEX('_',@CSVFILENAME)
IF @CSVFILENAME LIKE '%TRACKER%'
SET @FOLDER = 'TRACKER'
ELSE
SET @FOLDER = SUBSTRING(@CSVFILENAME,@Index + 1,LEN(@CSVFILENAME))
SELECT @FOLDER
END
对于每个循环容器,我都有执行 sql 任务和文件系统任务,以及两个变量 user::filename 和 user::destfolder。我希望存储过程的输出,即文件夹名称存储在变量 user::destfolder 中,然后可以在文件系统任务中的目标变量值中给出
有人可以帮助我进行变量映射,以便移动文件根据存储过程的输出到目标文件夹。