Especificar asignaciones de tipos de datos para un publicador de Oracle
En este tema se describe cómo especificar asignaciones de tipos de datos para un publicador de Oracle en SQL Server 2012 mediante SQL Server Management Studio o Transact-SQL. Aunque se proporciona un conjunto de asignaciones de tipo de datos predeterminado para los publicadores de Oracle, es posible que sea necesario especificar las diferentes asignaciones para una publicación determinada.
En este tema
Para especificar asignaciones de tipos de datos para un publicador de Oracle con:
SQL Server Management Studio
Transact-SQL
Usar SQL Server Management Studio
Especifique asignaciones de tipos de datos en la pestaña Asignación de datos del cuadro de diálogo Propiedades del artículo: <artículo>. Está disponible en la página Artículos del Asistente para nueva publicación y en el cuadro de diálogo Propiedades de la publicación: <publicación>. Para obtener más información acerca del modo de utilizar este asistente y de obtener acceso a este cuadro de diálogo, vea Crear una publicación a partir de una base de datos de Oracle y Ver y modificar propiedades de publicación.
Para especificar una asignación de tipos de datos
Seleccione una tabla en la página Artículos del Asistente para nueva publicación o en el cuadro de diálogo Propiedades de la publicación: <publicación> y, a continuación, haga clic en Propiedades del artículo.
Haga clic en Establecer propiedades del artículo de tabla resaltado.
En la pestaña Asignación de datos del cuadro de diálogo Propiedades del artículo: <artículo>, seleccione las asignaciones en la columna Tipo de datos del suscriptor.
Para algunos tipos de datos solo hay una asignación posible, en cuyo caso la columna de la cuadrícula de propiedades es de solo lectura.
Para algunos tipos, hay más de un tipo que puede seleccionar. Microsoft recomienda el uso de la asignación predeterminada a menos que la aplicación necesite una asignación diferente. Para obtener más información, vea Asignar tipos de datos para publicadores de Oracle.
Haga clic en Aceptar.
[Top]
Usar Transact-SQL
Puede especificar asignaciones de tipo de datos personalizadas mediante programación con los procedimientos almacenados de la replicación. También puede establecer las asignaciones predeterminadas que se usan al asignar los tipos de datos entre Microsoft SQL Server y un sistema de administración de bases de datos (DBMS) que no sea de SQL Server. Para obtener más información, vea Asignar tipos de datos para publicadores de Oracle.
Para definir las asignaciones de tipo de datos personalizadas al crear un artículo que pertenece a una publicación de Oracle
Si aún no existe ninguna, cree una publicación de Oracle.
En el distribuidor, ejecute sp_addarticle. Especifique un valor de 0 para @use_default_datatypes. Para obtener más información, vea Definir un artículo.
En el distribuidor, ejecute sp_helparticlecolumns para ver la asignación existente de una columna en un artículo publicado.
En el distribuidor, ejecute sp_changearticlecolumndatatype. Especifique el nombre del publicador de Oracle para @publisher, así como @publication, @articley @column para definir la columna publicada. Especifique el nombre del tipo de datos de SQL Server al que asignar para @type, así como @length, @precisiony @scale, cuando corresponda.
En el distribuidor, ejecute sp_articleview. Esto crea la vista usada para generar la instantánea de la publicación de Oracle.
Para especificar una asignación como la asignación predeterminada de un tipo de datos
(Opcional) En cualquier base de datos del distribuidor, ejecute sp_getdefaultdatatypemapping. Especifique @source_dbms, @source_type, @destination_dbms, @destination_versiony cualquier otro parámetro necesario para identificar el DBMS de origen. Se devuelve información acerca del tipo de datos asignado actualmente en el DBMS de destino mediante los parámetros de salida.
(Opcional) En cualquier base de datos del distribuidor, ejecute sp_helpdatatypemap. Especifique @source_dbms y cualquier otro parámetro necesario para filtrar el conjunto de resultados. Tenga en cuenta el valor de mapping_id para la asignación deseada en el conjunto de resultados.
En cualquier base de datos del distribuidor, ejecute sp_setdefaultdatatypemapping.
Si conoce el valor deseado de mapping_id obtenido en el paso 2, especifíquelo para @mapping_id.
Si no conoce mapping_id, especifique los parámetros @source_dbms, @source_type, @destination_dbms, @destination_typey cualquier otro parámetro necesario para identificar una asignación existente.
Para buscar los tipos de datos válidos para un tipo de datos de Oracle determinado
- En cualquier base de datos del distribuidor, ejecute sp_helpdatatypemap. Especifique un valor de ORACLE para @source_dbms y cualquier otro parámetro necesario para filtrar el conjunto de resultados.
Ejemplos (Transact-SQL)
En este ejemplo se cambia una columna con un tipo de datos de Oracle NUMBER, de modo que se asigna al tipo de datos numeric(38,38) de SQL Server, en lugar del tipo de datos predeterminado float.
EXEC sp_changearticlecolumndatatype
@publication = 'OraPublication',
@publisher = 'OraPublisher',
@article = 'OraArticle',
@column = 'OraArticleCol',
@type = 'numeric',
@scale = 38,
@precision = 38;
GO
Esta consulta de ejemplo devuelve las asignaciones predeterminadas y alternativas para el tipo de datos de Oracle 9 CHAR.
EXEC sp_helpdatatypemap
@source_dbms = N'ORACLE',
@source_version = 9,
@source_type = N'CHAR';
GO
Esta consulta de ejemplo devuelve las asignaciones predeterminadas para el tipo de datos de Oracle 9 NUMBER cuando se especifica sin escala o precisión.
EXEC sp_helpdatatypemap
@source_dbms = N'ORACLE',
@source_version = 9,
@source_type = N'NUMBER',
@defaults_only = 1;
GO
[Top]
Vea también
Conceptos
Asignar tipos de datos para publicadores de Oracle
Replicación de bases de datos heterogéneas
Conceptos sobre los procedimientos almacenados del sistema de replicación