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.
En el cuadro de diálogo Conexión, haga clic en Inicio de sesión único para la opción Método de seguridad.
Seleccione una Aplicación afiliada de la lista desplegable.
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.
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.
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.
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.
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
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.
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
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 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.