Share via


Especificar asignaciones de tipos de datos para un publicador de Oracle

Se aplica a:SQL Server

En este tema se describe cómo especificar asignaciones de tipos de datos para un publicador de Oracle en SQL Server 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

Uso de 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 más información sobre el uso del asistente y el acceso al 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

  1. 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>, seleccione una tabla y, a continuación, haga clic en Propiedades del artículo.

  2. Haga clic en Establecer propiedades del artículo de tabla resaltado.

  3. En la pestaña Asignación de datos del cuadro de diálogo Propiedades del artículo: <Artículo>, seleccione las asignaciones de 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 requiera una asignación diferente. Para más información, consulte Data Type Mapping for Oracle Publishers.

  4. Seleccione Aceptar.

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 más información, consulte Data Type Mapping for Oracle Publishers.

Para definir las asignaciones de tipo de datos personalizadas al crear un artículo que pertenece a una publicación de Oracle

  1. Si aún no existe ninguna, cree una publicación de Oracle.

  2. En el distribuidor, ejecute sp_addarticle. Especifique un valor de 0 para @use_default_datatypes. Para más información, consulte Define an Article.

  3. En el distribuidor, ejecute sp_helparticlecolumns para ver la asignación existente de una columna en un artículo publicado.

  4. 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, @precision y @scale, cuando corresponda.

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

  1. (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.

  2. (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.

  3. 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

  1. 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 el tipo de datos NUMBER de Oracle, 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

Consulte también

Asignar tipos de datos para publicadores de Oracle
Replicación de bases de datos heterogéneas
Conceptos de procedimientos almacenados del sistema de replicación
Configurar un publicador de Oracle