Compartir a través de


Problemas del consumidor de datos

En este tema se proporciona información sobre la solución de problemas de los consumidores de datos.

SQL Server Integration Services

Inicio de sesión único (SSO) empresarial

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

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

  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 Todos , 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. Podrá 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 SQL Server destino OLE DB de Integration Services con FastLoad para insertar SQL Server valores datetime o datetime2 en una columna DB2 TIMESTAMP, es posible que encuentre este error.

LA REPRESENTACIÓN DE CADENA DE UN VALOR DATETIME NO ES UN VALOR DATETIME VÁLIDO

Para solucionar este problema, debe establecer la propiedad de origen de datos del proveedor de datos Usar metadatos anticipados en true.

Use Early Metadata=True

Asignación de tipos de datos

Al usar el Asistente 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 mediante la edición de los archivos de asignación XML. Los archivos de asignación XML del Asistente para importación y exportación se encuentran en la carpeta siguiente.

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

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

La asignación siguiente para DB2 INT es compatible con un origen 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 DATETIME time DT_DBTIME
timestamp datetime datetime2 DT_DBTIMESTAMP2
DATE DATETIME DATE DT_DBDATE
CHAR CHAR CHAR DT_STR
CHAR () FOR BIT DATA BINARY BINARY DT_BYTES
CHAR () FOR MIXED DATA NCHAR NCHAR DT_WSTR
CHAR () FOR SBCS DATA CHAR CHAR DT_STR
CHARACTER CHAR CHAR DT_STR
CHARACTER () FOR BIT DATA BINARY BINARY DT_BYTES
CHARACTER () FOR MIXED DATA NCHAR NCHAR DT_WSTR
CHARACTER () FOR SBCS DATA CHAR CHAR DT_STR
NATIONAL CHARACTER NCHAR NCHAR DT_WSTR
VARCHAR VARCHAR VARCHAR DT_STR
VARCHAR () FOR BIT DATA VARBINARY VARBINARY DT_BYTES
VARCHAR () FOR MIXED DATA NVARCHAR NVARCHAR DT_WSTR
VARCHAR () FOR SBCS DATA VARCHAR VARCHAR DT_STR
CHARACTER VARYING VARCHAR VARCHAR DT_STR
CHARACTER VARYING () FOR BIT DATA VARBINARY VARBINARY DT_BYTES
CHARACTER VARYING () FOR MIXED DATA NVARCHAR NVARCHAR DT_WSTR
CHARACTER VARYING () FOR SBCS DATA VARCHAR VARCHAR DT_STR
NATIONAL CHARACTER VARYING NVARCHAR NVARCHAR DT_WSTR
LONG VARCHAR FOR BIT DATA imagen imagen DT_IMAGE
LONG VARCHAR text text DT_TEXT
GRAPHIC NCHAR NCHAR DT_WSTR
VARGRAPHIC NVARCHAR NVARCHAR DT_WSTR
GRAPHIC VARYING 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 NUMERIC NUMERIC DT_NUMERIC
NUMERIC NUMERIC NUMERIC DT_NUMERIC
real REAL REAL DT_R4
FLOAT FLOAT FLOAT DT_R8
DOUBLE FLOAT FLOAT DT_R8
DOUBLE PRECISION FLOAT FLOAT DT_R8
BLOB imagen imagen DT_BYTES
BINARY LARGE OBJECT imagen imagen DT_BYTES
CLOB text text DT_TEXT
CLOB () FOR MIXED DATA ntext ntext DT_NTEXT
CLOB () FOR SBCS DATA text text DT_TEXT
CHAR LARGE OBJECT text text DT_TEXT
CHAR LARGE OBJECT () FOR MIXED DATA ntext ntext DT_NTEXT
CHAR LARGE OBJECT () FOR SBCS DATA text text DT_TEXT
CHARACTER LARGE OBJECT text text DT_TEXT
CHARACTER LARGE OBJECT () FOR MIXED DATA ntext ntext DT_NTEXT
CHARACTER LARGE OBJECT () FOR SBCS DATA text text DT_TEXT
130 ntext ntext DT_NTEXT

Tras editar un archivo de asignación, deberá 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 trabaja.

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

Personalización de componentes de flujos de datos

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

Los archivos de asignación de SQL Server Integration Services en formato XML se usan para el Asistente para 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 programadores empresariales personalizar la asignación de datos en el flujo de datos. Para obtener más información sobre cómo personalizar componentes de flujo de datos mediante SQL Server 2008 Integration Services, consulte el tema Trabajar con tipos de datos en el Data Flow en SQL Server Libros en pantalla (https://go.microsoft.com/fwlink/?LinkId=241523).

SQL Server Replicación

Derive Parameters

Replicación de SQL Server requiere que el parámetro Derive se establezca en FALSE.

Asignación de tipos de datos

La Replicación de SQL Server puede convertir los datos incorrectamente, en función de las asignaciones predeterminadas desde los tipos de datos de SQL Server a los de DB2. Es recomendable revisar y modificar las asignaciones de tipos de datos de replicación mediante los siguientes procedimientos almacenados del sistema SQL Server.

  • sp_helpdatatypemap
    
  • sp_getdefaultdatatypemapping
    
  • sp_setdefaultdatatypemapping
    

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

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

    Puede producirse un error en la replicación de SQL Server 2008 a DB2 para z/OS con SQLCODE -188 (la representación de cadenas de un valor de fecha y hora no es un valor válido). Esto sucede cuando la replicación está configurada para asignar DATETIME2 a DB2 VARCHAR(27) y usa comandos de artículo de suscripción con valores de datos literales de cadena.

    Solución al problema con instrucciones paso a paso

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

  1. Identifique la asignación de tipos de datos que se debe modificar. Use MASTER para todos los pasos.

    seleccionar * en

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

    mapping_id source_dbms source_type destination_dbms destination_type destination_length
    189 MSSQLSERVER datetime2 DB2 VARCHAR 27
  3. Coloque la asignación 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.

    seleccionar * en

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

    Los resultados deberían indicar el valor mapping_id que se debe modificar. En la tabla siguiente se muestra el panel de resultados de este ejemplo donde el valor mapping_id es 189.

    mapping_id source_dbms source_type destination_dbms destination_type destination_length
    494 MSSQLSERVER datetime2 DB2 timestamp NULL
  7. Identifique el artículo de suscripción de replicación que se debe volver a configurar. Use la instrucción Transact-SQL USE para cambiar desde la base de datos maestra a la base de datos desde la que se realiza la réplica.

    USE [Test]

    select name, status from sysarticles
    
  8. Los resultados deberían mostrar el nombre del artículo que se debe modificar. Para este ejemplo, en la tabla siguiente se muestran los resultados cuando el nombre es DB2TS01.

    name status
    DB2TS01 25
  9. Si el valor de estado es 1 o 9, el artículo está configurado para el formato literal de la cadena.

    Si el valor de estado es 17 o 25, el artículo está configurado para el formato parametrizado.

  10. Configure el artículo de suscripción de réplica para comandos parametrizados.

    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, vea Conceptos de procedimientos almacenados del sistema de replicación (https://go.microsoft.com/fwlink/?LinkId=241525) en SQL Server Libros en pantalla.

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

Se puede producir el error 8152 de SQL Server en la operación INSERT de Replicación de SQL Server (los datos binarios o de cadena se truncarán). Esto puede ocurrir cuando (1) El proveedor de datos no está configurado para usar metadatos tempranos y (2) La replicación no está configurada para usar instrucciones INSERT con parámetros.

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, vea Configurar proveedores de datos para vínculos de datos DB2 (DB2) Todas las propiedades del proveedor OLE DB para DB2.

Vuelva a configurar Replicación de SQL Server artículo de suscripción 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 SQL Server documentación.

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. Según la plataforma y la versión de DB2, es posible que no pueda usar consultas con nombres de alias que superen los 18 caracteres. Por ejemplo, muchos objetos implementados en DB2 para z/OS usan nombres de 18 caracteres. Consulte la referencia de SQL de DB2 correspondiente a su plataforma y versión de DB2 y consúltelo con su administrador de bases de datos DB2. Es recomendable que el administrador o desarrollador actualice los dos archivos de cartucho de configuración de SQL Server Analysis Services, que contienen el soporte de asignación de tipos de datos para DB2. Para ello, se debe cambiar la longitud del identificador (longitud del identificador límite de tabla) de 29 a 18. A continuación se incluyen 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 nombres correctamente 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 cadena de conexión y, a continuación, incluir en el cadena de conexión el argumento siguiente.

  • Usar metadatos anticipados=True

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