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.
En el cuadro de diálogo Conexión , haga clic en Inicio de sesión único para el método Security.
Seleccione una aplicación afiliada en el cuadro de lista desplegable.
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.
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.
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.
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.
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 )
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 Coloque la asignación de tipos de datos.
exec sp_dropdatatypemapping 189
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
Vuelva a ejecutar la consulta para comprobar la nueva asignación de tipos de datos.
seleccionar * en
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 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
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.
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).