Condividi tramite


Specifica dei mapping tra i tipi di dati di un server di pubblicazione Oracle

Questo argomento descrive come specificare i mapping dei tipi di dati per un server di pubblicazione Oracle in SQL Server 2014 usando SQL Server Management Studio 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

Uso di SQL Server Management Studio

Specificare i mapping dei tipi di dati nella scheda Mapping dati della finestra di dialogo Proprietà articolo - <Articolo> . Questa opzione è disponibile nella pagina Articoli della Creazione guidata nuova pubblicazione e 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 dati della finestra di dialogo Proprietà articolo - <Articolo> selezionare mapping dalla colonna Tipo di dati 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 usare il mapping predefinito, a meno che l'applicazione non richieda un mapping diverso. Per altre informazioni, vedere Data Type Mapping for Oracle Publishers.

  4. Fare clic su OK.

Uso 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 durante il mapping dei tipi di dati tra Microsoft SQL Server e un sistema di gestione del database non SQL Server (DBMS). 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 un valore pari a 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, @article e @column per definire la colonna pubblicata. Specificare il nome del tipo di dati SQL Server a cui eseguire il mapping per @type, nonché @length,@precision e @scale, se 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 altri parametri necessari per identificare il database 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 tutti gli altri parametri necessari 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 la mapping_id, specificare i parametri @source_dbms, @source_type,@destination_dbms, @destination_type e altri parametri necessari 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 un valore di 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 Oracle number in modo che venga eseguito il mapping al tipo di dati SQL Server (38,38), anziché al tipo numericdi floatdati predefinito .

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 CHAR di 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

Vedere anche

Data Type Mapping for Oracle Publishers
Replica di database eterogenei
Replication System Stored Procedures Concepts
Configurare un server di pubblicazione Oracle