Specificare i mapping tra i tipi di dati di un server di pubblicazione Oracle

Si applica a:SQL Server

Questo argomento descrive in che modo specificare i mapping tra i tipi di dati di un server di pubblicazione Oracle in SQL Server usando SQL Server Management Studio (SSMS) o Transact-SQL. Anche se per i server di pubblicazione Oracle è disponibile un set di mapping predefiniti di tipi di dati, può essere necessario specificare mapping diversi per una determinata pubblicazione.

Contenuto dell'articolo

Utilizzo di SQL Server Management Studio

Nella scheda Mapping dei dati della finestra di dialogo Proprietà articolo - <Articolo> specificare i mapping tra i tipi di dati. È possibile accedere a questa finestra nella pagina Articoli della Creazione guidata nuova pubblicazione o nella finestra di dialogo Proprietà pubblicazione - <Pubblicazione>. Per altre informazioni sull'uso della creazione guidata e l'accesso alla finestra di dialogo, vedere Creare una pubblicazione da un database Oracle e Visualizzare e modificare le proprietà della pubblicazione.

Per specificare un mapping tra i tipi di dati

  1. Nella pagina Articoli della Creazione guidata nuova pubblicazione o nella finestra di dialogo Proprietà pubblicazione - <Pubblicazione> selezionare una tabella e quindi fare clic su Proprietà articolo.

  2. Fare clic su Imposta proprietà dell'articolo tabella evidenziato.

  3. Nella scheda Mapping dei dati della finestra di dialogo Proprietà articolo - <Articolo>, selezionare i mapping nella colonna Tipo di dati del Sottoscrittore:

    • Per alcuni tipi di dati è disponibile un solo tipo di mapping. In questo caso, la colonna nella proprietà è di sola lettura.

    • Per alcuni tipi è possibile selezionare più tipi di mapping. Microsoft consiglia di utilizzare il mapping predefinito, a meno che l'applicazione utilizzata non richieda un tipo di mapping diverso. Per altre informazioni, vedere Data Type Mapping for Oracle Publishers.

  4. Seleziona OK.

Utilizzo di Transact-SQL

È possibile specificare mapping personalizzati di tipi di dati a livello di programmazione tramite le stored procedure di replica. È anche possibile impostare i mapping predefiniti usati per il mapping dei tipi di dati tra Microsoft SQL Server e un sistema di gestione di database (DBMS) non SQL Server. Per altre informazioni, vedere Data Type Mapping for Oracle Publishers.

Per definire mapping personalizzati di tipi di dati durante la creazione di un articolo appartenente a una pubblicazione Oracle

  1. Se non esiste già, creare una pubblicazione Oracle.

  2. Nel database di distribuzione eseguire sp_addarticle. Specificare il valore 0 per @use_default_datatypes. Per altre informazioni, vedere definire un articolo.

  3. Nel server di distribuzione eseguire sp_helparticlecolumns per visualizzare il mapping esistente per una colonna in un articolo pubblicato.

  4. Nel server di distribuzione eseguire sp_changearticlecolumndatatype. Specificare il nome del server di pubblicazione Oracle per @publisher, nonché @publication, @articlee @column per definire la colonna pubblicata. Specificare il nome del tipo di dati SQL Server di cui eseguire il mapping per @type, nonché @length, @precision e @scale, laddove applicabile.

  5. Nel server di distribuzione eseguire sp_articleview. In questo modo verrà creata la vista utilizzata per generare lo snapshot dalla pubblicazione Oracle.

Per specificare un mapping come mapping predefinito per un tipo di dati

  1. (Facoltativo) In un database del server di distribuzione eseguire sp_getdefaultdatatypemapping. Specificare @source_dbms, @source_type, @destination_dbms, @destination_version e qualsiasi altro parametro necessario per identificare il sistema DBMS di origine. Le informazioni sui tipi di dati attualmente sottoposti a mapping nel sistema DBMS di destinazione vengono restituite tramite parametri di output.

  2. (Facoltativo) In un database del server di distribuzione eseguire sp_helpdatatypemap. Specificare @source_dbms e qualsiasi altro parametro necessario per filtrare il set di risultati. Si noti il valore di mapping_id per il mapping desiderato nel set di risultati.

  3. In un database del database di distribuzione eseguire sp_setdefaultdatatypemapping.

    • Se si conosce il valore desiderato di mapping_id ottenuto nel passaggio 2, specificarlo per @mapping_id.

    • Se non si conosce il valore di mapping_id, specificare i parametri @source_dbms, @source_type, @destination_dbms, @destination_type e qualsiasi altro parametro necessario per identificare un mapping esistente.

Per trovare tipi di dati validi per un determinato tipo di dati Oracle

  1. In un database del server di distribuzione eseguire sp_helpdatatypemap. Specificare il valore ORACLE per @source_dbms e qualsiasi altro parametro necessario per filtrare il set di risultati.

Esempi (Transact-SQL)

In questo esempio viene modificata una colonna con un tipo di dati NUMBER di Oracle in modo che venga eseguito il mapping al tipo di dati numerico(38,38) di SQL Server, anziché al tipo di dati predefinito float.

EXEC sp_changearticlecolumndatatype 
    @publication = 'OraPublication', 
    @publisher = 'OraPublisher', 
    @article = 'OraArticle', 
    @column = 'OraArticleCol', 
    @type = 'numeric', 
    @scale = 38, 
    @precision = 38;
GO

In questo esempio di query vengono restituiti i mapping predefiniti e alternativi per il tipo di dati CHARdi Oracle 9.

EXEC sp_helpdatatypemap 
    @source_dbms = N'ORACLE', 
    @source_version = 9,
    @source_type = N'CHAR';
GO

In questo esempio di query vengono restituiti i mapping predefiniti per il tipo di dati NUMBER di Oracle 9 quando viene specificato senza scala o precisione.

EXEC sp_helpdatatypemap 
    @source_dbms = N'ORACLE', 
    @source_version = 9,
    @source_type = N'NUMBER',
    @defaults_only = 1;
GO

Vedi anche

Mapping dei tipi di dati per i server di pubblicazione Oracle
Replica di database eterogenei
Replication System Stored Procedures Concepts
Configurare un server di pubblicazione Oracle