Problemas de consumidor de datos

En este tema se proporciona información para solucionar problemas de consumidor de datos.

SQL Server Integration Services

Empresa Individual Sign-On

Al usar Enterprise Single Sign-On con SQL Server Integration Services, es posible que tenga que introducir un valor de marcador de posición de MS$SAME para el nombre de usuario y la contraseña. Con Vínculos de datos, puede configurar ESSO para su uso con SSIS.

  1. En el cuadro de diálogo Conexión, haga clic en Inicio de sesión único para el método de seguridad.

  2. Seleccione una aplicación afiliada en el cuadro de lista desplegable.

  3. En el cuadro de diálogo Todo , haga clic en Contraseña y, a continuación, haga clic en Editar valor. En el cuadro de diálogo Editar valor de propiedad , escriba MS$SAME para el valor de propiedad y haga clic en Aceptar.

  4. En el cuadro de diálogo Todo , haga clic en Id. de usuario y, a continuación, haga clic en Editar valor. En el cuadro de diálogo Editar valor de propiedad , escriba MS$SAME para el valor de propiedad y haga clic en Aceptar.

  5. En el cuadro de diálogo Conexión , haga clic en Probar. Puede ver los resultados en el cuadro de diálogo Vínculos de datos de Microsoft.

  6. Haga clic en Aceptar para guardar la información de configuración.

FastLoad para insertar el valor TIMESTAMP

Al usar el destino OLE DB de SQL Server Integration Services con FastLoad para insertar valores datetime o datetime2 de SQL Server en una columna DB2 TIMESTAMP, puede producirse este error.

LA REPRESENTACIÓN EN CADENA DE UN VALOR DE FECHA Y HORA NO ES UN VALOR DE FECHA Y HORA VÁLIDO.

Para solucionar este problema, debe establecer la propiedad origen de datos del proveedor de datos "Use Early Metadata" en true.

Use Early Metadata=True

Asignación de tipos de datos

Al usar los Asistentes para importación y exportación de SQL Server Integration Services, desde Microsoft SQL Server Management Studio o Business Intelligence Design Studio, puede personalizar las conversiones de datos predeterminadas editando archivos de asignación XML. Los archivos de asignación XML del Asistente para la importación y la exportación se encuentran en la siguiente carpeta.

C:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\MappingFiles

Para asignar correctamente IBM DB2 para tipos de datos decimales y caracteres IBM i a tipos de datos de SQL Server, los archivos de asignación de datos deben extenderse para incluir el sinónimo de formato largo del tipo de datos DB2. Por ejemplo, agregue la siguiente asignación de tipos de datos entre el origen INTEGER de DB2 y SQL Server. Esta mapeo es compatible con SQLOLEDB, SQLNCL, SQLNCLI10 y System.Data.SqlClient.SqlConnection. Reemplaza el valor INT de formato corto SourceDataType por el formato largo INTEGER.

La siguiente asignación para DB2 INT es compatible con una fuente de DB2 para z/OS V9.

<!-- INT -->
<dtm:DataTypeMapping>
<dtm:SourceDataType>
<dtm:DataTypeName>INT</dtm:DataTypeName>
</dtm:SourceDataType>
<dtm:DestinationDataType>
<dtm:SimpleType>
<dtm:DataTypeName>INT</dtm:DataTypeName>
</dtm:SimpleType>
</dtm:DestinationDataType>
</dtm:DataTypeMapping>

La siguiente asignación de tipos de datos para DB2 INTEGER es compatible con un origen DB2 para IBM i V6R1.

<!-- INTEGER -->
<dtm:DataTypeMapping>
<dtm:SourceDataType>
<dtm:DataTypeName>INTEGER</dtm:DataTypeName>
</dtm:SourceDataType>
<dtm:DestinationDataType>
<dtm:SimpleType>
<dtm:DataTypeName>INT</dtm:DataTypeName>
</dtm:SimpleType>
</dtm:DestinationDataType>
</dtm:DataTypeMapping>

Archivos de asignación de tipos de datos

En la tabla siguiente se describen los tres archivos de asignación que puede editar al usar el Proveedor de Datos.

Nombre del tipo de datos DB2 DB2ToMSSql DB2ToMSSql10 DB2ToSSIS10
TIME Fecha y hora time DT_DBTIME
TIMESTAMP datetime datetime2 DT_DBTIMESTAMP2
FECHA Fecha y hora FECHA DT_DBDATE
CHAR CHAR CHAR DT_STR
CHAR () PARA DATOS DE BITS BINARIO BINARIO DT_BYTES
CHAR () PARA DATOS MIXTOS NCHAR NCHAR DT_WSTR
CHAR () PARA DATOS DE SBCS CHAR CHAR DT_STR
CARÁCTER CHAR CHAR DT_STR
CARÁCTER () PARA DATOS DE BITS BINARIO BINARIO DT_BYTES
CARÁCTER () PARA DATOS MIXTOS NCHAR NCHAR DT_WSTR
CARÁCTER () PARA DATOS DE SBCS CHAR CHAR DT_STR
CARÁCTER NACIONAL NCHAR NCHAR DT_WSTR
VARCHAR VARCHAR VARCHAR DT_STR
VARCHAR () PARA DATOS BINARIOS VARBINARY VARBINARY DT_BYTES
VARCHAR () PARA DATOS MIXTOS NVARCHAR NVARCHAR DT_WSTR
VARCHAR () PARA DATOS SBCS VARCHAR VARCHAR DT_STR
CARÁCTER VARIABLE VARCHAR VARCHAR DT_STR
CARÁCTER VARIABLE () PARA DATOS DE BITS VARBINARY VARBINARY DT_BYTES
CARÁCTER VARIABLE () PARA DATOS MIXTOS NVARCHAR NVARCHAR DT_WSTR
CARÁCTER VARIABLE () PARA DATOS SBCS VARCHAR VARCHAR DT_STR
CARÁCTER NACIONAL VARIABLE NVARCHAR NVARCHAR DT_WSTR
VARCHAR LARGO PARA DATOS EN BIT imagen imagen DT_IMAGE
LONG VARCHAR Mensaje de texto Mensaje de texto DT_TEXT
GRÁFICO NCHAR NCHAR DT_WSTR
VARGRAPHIC NVARCHAR NVARCHAR DT_WSTR
GRÁFICO VARIABLE NVARCHAR NVARCHAR DT_WSTR
SMALLINT SMALLINT SMALLINT DT_I2
INT INT INT DT_14
INTEGER INT INT DT_14
BIGINT BIGINT BIGINT DT_18
DECIMAL NUMÉRICO NUMÉRICO DT_NUMERIC
NUMÉRICO NUMÉRICO NUMÉRICO DT_NUMERIC
REAL REAL REAL DT_R4
FLOTAR FLOTAR FLOTAR DT_R8
DOUBLE FLOTAR FLOTAR DT_R8
doble precisión FLOTAR FLOTAR DT_R8
BLOB imagen imagen DT_BYTES
OBJETO BINARIO GRANDE imagen imagen DT_BYTES
CLOB Mensaje de texto Mensaje de texto DT_TEXT
CLOB () PARA DATOS MIXTOS ntexto ntexto DT_NTEXT
CLOB () PARA DATOS DE SBCS Mensaje de texto Mensaje de texto DT_TEXT
CARÁCTER OBJETO GRANDE Mensaje de texto Mensaje de texto DT_TEXT
OBJETO DE CARÁCTER GRANDE () PARA DATOS MEZCLADOS ntexto ntexto DT_NTEXT
OBJETO GRANDE DE CARÁCTER () PARA DATOS SBCS Mensaje de texto Mensaje de texto DT_TEXT
OBJETO GRANDE DE CARÁCTER Mensaje de texto Mensaje de texto DT_TEXT
OBJETO DE CARACTERES GRANDES () PARA DATOS MIXTOS ntexto ntexto DT_NTEXT
OBJETO GRANDE DE CARACTERES () PARA LOS DATOS SBCS Mensaje de texto Mensaje de texto DT_TEXT
130 ntexto ntexto DT_NTEXT

Después de editar un archivo de asignación, debe cerrar y volver a abrir el Asistente para importación y exportación de SQL Server o Business Intelligence Development Studio, en función del entorno en el que esté trabajando.

Para obtener más información sobre cómo configurar SQL Server 2008 Integration Services, consulte el tema Importar y exportar datos mediante el Asistente para importación y exportación de SQL Server en la Documentación en línea de SQL Server (https://go.microsoft.com/fwlink/?LinkId=193204).

Personalización de componentes de flujo de datos

Puede usar componentes de flujo de datos de SQL Server Integration Services para realizar transformaciones predeterminadas y personalizadas. Las transformaciones personalizadas se basan en código personalizado proporcionado por el desarrollador.

Los archivos de asignación de SQL Server Integration Services en formato XML están destinados al uso con el Asistente de Importación y Exportación. Estos archivos no se usan con el flujo de datos. SQL Server Integration Services ofrece una clase de búfer de canalización para permitir a los desarrolladores empresariales personalizar la asignación de datos dentro del flujo de datos. Para obtener más información sobre cómo personalizar los componentes de flujo de datos mediante SQL Server 2008 Integration Services, vea el tema Trabajar con tipos de datos en el flujo de datos en la Documentación en pantalla de SQL Server (https://go.microsoft.com/fwlink/?LinkId=241523).

Replicación de SQL Server

Derivar parámetros

La replicación de SQL Server requiere que el parámetro Derive esté establecido en FALSE.

Asignación de tipos de datos

La replicación de SQL Server podría convertir datos de manera incorrecta, basándose en los mapeos predeterminados de SQL Server a tipos de datos de DB2. Se le recomienda revisar y modificar las asignaciones de tipos de datos de Replicación mediante los siguientes procedimientos almacenados del sistema de SQL Server.

  • sp_helpdatatypemap
    
  • sp_getdefaultdatatypemapping
    
  • sp_setdefaultdatatypemapping
    

    Para obtener más información, vea el tema Procedimientos almacenados del sistema (Transact-SQL) en SQL Server Books Online (http://go.microsoft.com/fwlink/?LinkId=241524).

    Problema con la asignación de DATETIME2 de SQL Server a DBTYPE_TIMESTAMP

    La replicación de SQL Server 2008 a DB2 para z/OS puede fallar con el SQLCODE -188 (la representación en cadena de un valor de fecha y hora no es válida). Esto ocurre cuando Replication está configurada para mapear DATETIME2 a DB2 VARCHAR(27) y utiliza comandos de artículo de suscripción con valores de datos de cadena literal.

    Solución a problemas con instrucciones paso a paso

    Vuelva a configurar la replicación de SQL Server 2008 para mapear DATETIME2 a TIMESTAMP de DB2 y manejar comandos de artículos de suscripción con parámetros. Esto permite al proveedor de datos dar formato al DATETIME2 como una estructura DB2 TIMESTAMP compatible con el servidor de bases de datos IBM DB2.

  1. Identifique el mapeo de tipos de datos que se va a modificar. Use MASTER para todos los pasos.

    select * from

    sys.fn_helpdatatypemap
    (
       'MSSQLSERVER',
        '%',
        '%',
        '%',
        '%',
        '%',
        0
    )
    
  2. Donde destination_dbms = "DB2" y source_type = "datetime2" Los resultados deben indicar el mapping_id que se va a modificar. En la tabla siguiente se muestra el panel de resultados de este ejemplo donde el mapping_id es 189.

    mapping_id source_dbms tipo_de_fuente destination_dbms destination_type longitud_destino
    189 MSSQLSERVER datetime2 DB2 VARCHAR 27
  3. Elimine el mapeo de tipos de datos.

    exec sp_dropdatatypemapping 189
    
  4. Agregue la asignación de tipos de datos.

    exec  sp_adddatatypemapping
         @source_dbms = 'MSSQLSERVER',
         @source_type = 'datetime2',
         @destination_dbms = 'DB2',
         @destination_type = 'TIMESTAMP',
         @destination_nullable = 1,
         @destination_createparams = 0,
         @dataloss = 0,
         @is_default = 1
    
  5. Vuelva a ejecutar la consulta para comprobar la nueva asignación de tipos de datos.

    select * from

    select * from sys.fn_helpdatatypemap
    (
       'MSSQLSERVER',
        '%',
        '%',
        '%',
        '%',
        '%',
        0
    )
    
  6. Donde destination_dbms = 'DB2' y source_type = 'datetime2'

    Los resultados deben indicar el "mapping_id" que debe modificarse. En la tabla siguiente se muestra el panel de resultados de este ejemplo donde el mapping_id es 189.

    identificador_de_mapeo source_dbms tipo_de_fuente destination_dbms (sistema de gestión de bases de datos de destino) destination_type longitud_de_destino
    494 MSSQLSERVER datetime2 DB2 TIMESTAMP NULO
  7. Identifique el artículo de la suscripción para replicación que desea reconfigurar. Use la Transact-SQL instrucción USE para cambiar de la base de datos maestra a la base de datos desde la que va a replicar.

    USE [Test]

    select name, status from sysarticles
    
  8. Los resultados deben mostrar el nombre del artículo que se va a modificar. En este ejemplo, la tabla siguiente muestra los resultados donde el nombre es DB2TS01.

    nombre estado
    DB2TS01 25
  9. Si el valor de estado es 1 o 9, el artículo se configura para el formato literal de cadena.

    Si el valor de estado es 17 o 25, el artículo se configura para el formato con parámetros.

  10. Configure el artículo de suscripción de replicación para comandos con parámetros.

    USE [Test]

    DECLARE @publication AS sysname;
    DECLARE @article AS sysname;
    SET @publication = N'DB2TS_PUB01';
    SET @article = N'DB2TS01';
    EXEC sp_changearticle @publication, @article, 'status', 'parameters', 0, 0;
    

    Para obtener más información, consulte Conceptos de procedimientos almacenados del sistema de replicación (https://go.microsoft.com/fwlink/?LinkId=241525) en los Libros en línea de SQL Server.

Se produce un error en la operación INSERT de replicación con el error 8152: los datos binarios o de cadena se truncarían

Es posible que la operación INSERT de replicación de SQL Server podría fallar con el error 8152 de SQL Server (se truncarán datos de cadena o binarios). Esto puede ocurrir cuando (1) El proveedor de datos no está configurado para usar metadatos anticipados y (2) La replicación no está configurada para usar instrucciones INSERT parametrizadas.

Vuelva a configurar la conexión del proveedor de datos para especificar "Use Early Metadata=true" en la definición del origen de datos del suscriptor de replicación de SQL Server.

Para obtener más información, consulte Configurar proveedores de datos para enlaces de datos de DB2 (DB2) Todas las propiedades en la documentación del proveedor OLE DB para DB2.

Vuelva a configurar el artículo sobre la suscripción de replicación de SQL Server para incluir la opción "24" ("Incluye el nombre de columna en instrucciones INSERT y usa instrucciones parametrizadas").

Para obtener más información, consulte Replicación de SQL Server sp_addarticle (Transact-SQL) en la documentación de SQL Server.

SQL Server Analysis Services

Al diseñar cubos para su uso con SQL Server Analysis Services, las herramientas generan comandos SQL que contienen nombres de alias largos que pueden superar la longitud máxima admitida por el servidor DB2. En función de la plataforma y la versión de DB2 que use, es posible que no pueda usar consultas con nombres de alias superiores a 18 caracteres. Por ejemplo, muchos objetos implementados en DB2 para z/OS usan nombres de 18 caracteres. Consulte la referencia de SQL de DB2 para la plataforma y la versión de DB2 y consulte con el administrador de bases de datos db2. Se recomienda que el administrador o el desarrollador actualicen los dos archivos de cartucho de configuración de SQL Server Analysis Service que contienen la compatibilidad con la asignación de tipos de datos para DB2 cambiando la longitud del identificador (limit-table-identifier-length) de 29 a 18. A continuación se muestran los nombres y la ubicación de los dos archivos de cartucho que se deben actualizar.

  • C:\Archivos de programa\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\DataWarehouseDesigner\UIRdmsCartridge\db2v0801.xs

  • C:\Archivos de programa\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\DataWarehouseDesigner\UIRdmsCartridge\db2v0801.xs

    SQL Server Analysis Services usa los archivos de configuración actualizados para asignar un nombre correcto a los objetos en los comandos SQL.

SQL Server Migration Assistant para DB2

Al usar SQL Server Migration Assistant para DB2 (SSMA) para leer datos CLOB de DB2, debe definir la conexión DB2 dentro de SSMA mediante la opción de cadena de conexión y, a continuación, incluir en la cadena de conexión el siguiente argumento.

  • Activar metadatos tempranos=True

Este argumento indica al proveedor de datos que use metadatos iniciales (tipos de datos de parámetros y columnas) definidos en tiempo de diseño o metadatos tardíos definidos en tiempo de ejecución. Esta propiedad opcional acepta un valor booleano. El valor predeterminado es false. Especifique verdadero al usar SQL Server Migration Assistant (SSMA) de DB2 para leer datos CLOB, incluida la información del esquema codificada como datos CLOB (por ejemplo, la columna STATEMENT de la tabla SYSTRIGGERS de SYSIBM).