En algunos casos se quiere generar una consulta dentro SSIS para ser ejecutada por una tarea posterior (o generar cualquier texto en general), normalmente se usa algo como una tarea SQL para realizar dicho trabajo, la consulta sería algo así
declare @Consulta nvarchar(max) SET @Consulta = 'select ''A''' select @Consulta
Creamos una tarea SQL con la siguiente configuración
Se asume:
- Se creó la variable con nombre Resultado de tipo String
- Se tiene una conexión OLEDB hacia Sql Server
Al ejecutar el paquete se encuentra el siguiente mensaje de error
[Execute SQL Task] Error: An error occurred while assigning a value to variable "Resultado": "The type of the value (DBNull) being assigned to variable "User::Resultado" differs from the current variable type (String). Variables may not change type during execution. Variable types are strict, except for variables of type Object. ".
Se puede pasar un tiempo importante buscando la causa del error y al ejecutar la consulta la misma retorna el resultado esperado al ejecutarla en el SSMS
El problema es el manejo de SSIS tiene de los tipos de datos varchar(max), nvarchar(max), si el código se cambia por
declare @Consulta nvarchar(100) SET @Consulta = 'select ''A''' select @Consulta
Y se ejecuta de nuevo, el error desaparece
Espero sea de ayuda
FREDDY LEANDRO ANGARITA CASTELLANOS
Data platform MVP
@flacMVP