[Codigo] En SSIS error extraño al generar código

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

 

 ResultSet: Single Row SQL Statement: declare @Consulta nvarchar(100) SET @Consulta = 'select ''A''' select @Consulta
Configuración

 

 

ResultaName: 0 y en Variable Name: User::Resultado
Configuración Tarea2

 

 

 

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *