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 empresarial

Cuando usa el inicio de sesión único empresarial con SQL Server Integration Services, es posible que sea necesario especificar un valor de marcador “MS$SAME” para el nombre de 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 la opción Método de seguridad.

  2. Seleccione una Aplicación afiliada de la lista desplegable.

  3. En el cuadro de diálogo Todos, seleccione Contraseña y haga clic en Editar valor. En el cuadro de diálogo Modificar valor de la propiedad, escriba MS$SAME en 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, en Editar valor. En el cuadro de diálogo Modificar valor de la propiedad, escriba MS$SAME en Valor de propiedad y haga clic en Aceptar.

  5. En el cuadro de diálogo Conexión, haga clic en Prueba. 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 la configuración.

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:\Archivos de programa\Microsoft SQL Server\100\DTS\MappingFiles

C:\Archivos de programa (x86)\Microsoft SQL Server\100\DTS\MappingFiles

Para asignar tipos de datos de carácter y decimal de IBM DB2 para i5/OS a los tipos de datos SQL Server, los archivos de asignación de datos deberían extenderse para incluir el sinónimo de formato largo de tipos 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 SourceDataType de formato corto con el valor 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 i5/OS 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

image

image

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

image

image

DT_BYTES

BINARY LARGE OBJECT

image

image

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 información acerca de cómo configurar SQL Server 2008 Integration Services, consulte el tema Importar o exportar datos con el Asistente para importación y exportación de SQL Server en Libros en pantalla de SQL Server(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 información acerca de la personalización de componentes de flujo de datos mediante SQL Server 2008 Integration Services, consulte el tema Trabajar con tipos de datos del flujo de datos en Libros en pantalla de SQL Server (https://go.microsoft.com/fwlink/?LinkId=241523).

Replicación de SQL Server

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 acerca de los procedimientos almacenados del sistema (Transact-SQL) en Libros en pantalla de SQL Server (https://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.

    select * from

    sys.fn_helpdatatypemap(   'MSSQLSERVER',     '%',     '%',     '%',     '%',     '%',     0) 

    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

  2. Coloque la asignación de tipos de datos.

    exec sp_dropdatatypemapping 189

  3. 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
    
  4. Vuelva a ejecutar la consulta para comprobar la nueva asignación de tipos de datos.

    select * from

    select * from sys.fn_helpdatatypemap
       (
       'MSSQLSERVER', 
        '%', 
        '%', 
        '%', 
        '%', 
        '%', 
        0)
    

    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

  5. 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
    
  6. 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

    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.

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

SQL Server Analysis Services

Al diseñar cubos para usar con SQL Server Analysis Services, las herramientas generan comandos SQL que contienen nombres de alias largos que pueden superar la longitud máxima que admite 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.