J'ai créé un package SSIS qui importe un fichier dans une table (assez simple). J'ai quelques variables, quelques-unes dans un fichier de configuration comme serveur, base de données, importfolder. à l'exécution je veux passer le nom de fichier. Ceci est fait grâce à une procédure stockée utilisant dtexec. Lors de la définition des paramètres dans le fichier configfile, cela fonctionne également lorsque vous définissez tous les paramètres dans la procédure et que vous les transmettez avec l'instruction \ Set (voir ci-dessous). Lorsque j'essaie de combiner la configuration de config avec les paramètres à la volée, j'obtiens une erreur renvoyant au chemin des fichiers de configuration qui a été défini au moment du design.Combiner les paramètres de configuration avec les paramètres transmis par la ligne de commande
Est-ce que quelqu'un a trouvé cela et a trouvé une solution?
Cordialement Frederik
DECLARE @SSISSTR VARCHAR(8000),
@DataBaseServer VARCHAR(100),
@DataBaseName VARCHAR(100),
@PackageFilePath VARCHAR(200),
@ImportFolder VARCHAR(200),
@HandledFolder VARCHAR(200),
@ConfigFilePath VARCHAR(200),
@SSISreturncode INT;
/* DEBUGGING
DECLARE @FileName VARCHAR(100),
@SelectionId INT
SET @FileName = 'Test.csv';
SET @SelectionId = 366;
*/
SET @PackageFilePath = '/FILE "Y:\SSIS\Packages\PostalCodeSelectionImport\ImportPackage.dtsx" ';
SET @DataBaseServer = 'STOSWVUTVDB01\DEV_BSE';
SET @DataBaseName = 'BSE_ODR';
SET @ImportFolder = '\\Stoswvutvbse01\Application\FileLoadArea\ODR\\';
SET @HandledFolder = '\\Stoswvutvbse01\Application\FileLoadArea\ODR\Handled\\';
--SET @ConfigFilePath = '/CONFIGFILE "Y:\SSIS\Packages\PostalCodeSelectionImport\Configuration\DEV_BSE.dtsConfig" ';
----now making "dtexec" SQL from dynamic values
SET @SSISSTR = 'DTEXEC ' + @PackageFilePath; -- + @ConfigFilePath;
SET @SSISSTR = @SSISSTR + ' /SET \Package.Variables[User::SelectionId].Properties[Value];' + CAST(@SelectionId AS VARCHAR(12));
SET @SSISSTR = @SSISSTR + ' /SET \Package.Variables[User::DataBaseServer].Properties[Value];"' + @DataBaseServer + '"';
SET @SSISSTR = @SSISSTR + ' /SET \Package.Variables[User::ImportFolder].Properties[Value];"' + @ImportFolder + '" ';
SET @SSISSTR = @SSISSTR + ' /SET \Package.Variables[User::DataBaseName].Properties[Value];"' + @DataBaseName + '" ';
SET @SSISSTR = @SSISSTR + ' /SET \Package.Variables[User::ImportFileName].Properties[Value];"' + @FileName + '" ';
SET @SSISSTR = @SSISSTR + ' /SET \Package.Variables[User::HandledFolder].Properties[Value];"' + @HandledFolder + '" ';
-- Now execute dynamic SQL by using EXEC.
EXEC @SSISreturncode = xp_cmdshell @SSISSTR;