Specifica dei mapping tra i tipi di dati di un server di pubblicazione OracleSpecify Data Type Mappings for an Oracle Publisher

In questo argomento viene descritto come specificare i mapping dei tipi di dati per un server di pubblicazione Oracle in SQL Server 2017SQL Server 2017 tramite SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to specify data type mappings for an Oracle Publisher in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-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.Although a set of default data type mappings are provided for Oracle Publishers, it might be necessary to specify different mappings for a given publication.

Contenuto dell'argomentoIn This Topic

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Nella scheda Mapping dei dati della finestra di dialogo Proprietà articolo - <Articolo> specificare i mapping tra i tipi di dati.Specify data type mappings on the Data Mapping tab of the Article Properties - <Article> dialog box. È possibile accedere a questa finestra nella pagina Articoli della Creazione guidata nuova pubblicazione o nella finestra di dialogo Proprietà pubblicazione - <Pubblicazione>.This is available from the Articles page of the New Publication Wizard and the Publication Properties - <Publication> dialog box. 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.For more information about using the wizard and accessing the dialog box, see Create a Publication from an Oracle Database and View and Modify Publication Properties.

Per specificare un mapping tra i tipi di datiTo specify a data type mapping

  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.On the Articles page of the New Publication Wizard or the Publication Properties - <Publication> dialog box, select a table, and then click Article Properties.

  2. Fare clic su Imposta proprietà dell'articolo tabella evidenziato.Click Set Properties of Highlighted Table Article.

  3. Nella scheda Mapping dei dati della finestra di dialogo Proprietà articolo - <Articolo>, selezionare i mapping nella colonna Tipo di dati del Sottoscrittore:On the Data Mapping tab of the Article Properties - <Article> dialog box, select mappings from the Subscriber Data Type column:

    • Per alcuni tipi di dati è disponibile un solo tipo di mapping. In questo caso, la colonna nella proprietà è di sola lettura.For some data types there is only one possible mapping, in which case the column in the property grid is read-only.

    • Per alcuni tipi è possibile selezionare più tipi di mapping.For some types, there is more than one type that you can select. MicrosoftMicrosoft consiglia di utilizzare il mapping predefinito, a meno che l'applicazione utilizzata non richieda un tipo di mapping diverso. recommends that you use the default mapping unless your application requires a different mapping. Per altre informazioni, vedere Data Type Mapping for Oracle Publishers.For more information, see Data Type Mapping for Oracle Publishers.

  4. Fare clic su OK.Click OK.

Utilizzo di Transact-SQL Using Transact-SQL

È possibile specificare mapping personalizzati di tipi di dati a livello di programmazione tramite le stored procedure di replica.You can specify custom data type mappings programmatically using replication stored procedures. È inoltre possibile impostare i mapping predefiniti usati per il mapping dei tipi di dati tra un sistema di gestione di database (DBMS) MicrosoftMicrosoft SQL ServerSQL Server e non- SQL ServerSQL Server.You can also set the default mappings that are used when mapping data types between MicrosoftMicrosoft SQL ServerSQL Server and a non- SQL ServerSQL Server database management system (DBMS). Per altre informazioni, vedere Data Type Mapping for Oracle Publishers.For more information, see Data Type Mapping for Oracle Publishers.

Per definire mapping personalizzati di tipi di dati durante la creazione di un articolo appartenente a una pubblicazione OracleTo define custom data type mappings when creating an article belonging to an Oracle publication

  1. Se non esiste già, creare una pubblicazione Oracle.If one does not already exist, create an Oracle publication.

  2. Nel database di distribuzione eseguire sp_addarticle.At the Distributor, execute sp_addarticle. Specificare il valore 0 per @use_default_datatypes.Specify a value of 0 for @use_default_datatypes. Per altre informazioni, vedere Define an Article.For more information, see Define an Article.

  3. Nel server di distribuzione eseguire sp_helparticlecolumns per visualizzare il mapping esistente per una colonna in un articolo pubblicato.At the Distributor, execute sp_helparticlecolumns to view the existing mapping for a column in a published article.

  4. Nel server di distribuzione eseguire sp_changearticlecolumndatatype.At the Distributor, execute sp_changearticlecolumndatatype. Specificare il nome del server di pubblicazione Oracle per @publisher, nonché @publication, @articlee @column per definire la colonna pubblicata.Specify the name of the Oracle Publisher for @publisher, as well as @publication, @article, and @column to define the published column. Specificare il nome del tipo di dati SQL ServerSQL Server di cui eseguire il mapping per @type, nonché @length, @precisione @scalese applicabile.Specify the name of the SQL ServerSQL Server data type to map to for @type, as well as @length, @precision, and @scale, where applicable.

  5. Nel server di distribuzione eseguire sp_articleview.At the Distributor, execute sp_articleview. In questo modo verrà creata la vista utilizzata per generare lo snapshot dalla pubblicazione Oracle.This creates the view used to generate the snapshot from the Oracle publication.

Per specificare un mapping come mapping predefinito per un tipo di datiTo specify a mapping as the default mapping for a data type

  1. (Facoltativo) In un database del server di distribuzione eseguire sp_getdefaultdatatypemapping.(Optional) At the Distributor on any database, execute sp_getdefaultdatatypemapping. Specificare @source_dbms, @source_type, @destination_dbms, @destination_versione qualsiasi altro parametro necessario per identificare il sistema DBMS di origine.Specify @source_dbms, @source_type, @destination_dbms, @destination_version, and any other parameters needed to identify the source DBMS. Le informazioni sui tipi di dati attualmente sottoposti a mapping nel sistema DBMS di destinazione vengono restituite tramite parametri di output.Information on the currently mapped data type in the destination DBMS is returned using the output parameters.

  2. (Facoltativo) In un database del server di distribuzione eseguire sp_helpdatatypemap.(Optional) At the Distributor on any database, execute sp_helpdatatypemap. Specificare @source_dbms e qualsiasi altro parametro necessario per filtrare il set di risultati.Specify @source_dbms and any other parameters needed to filter the result set. Si noti il valore di mapping_id per il mapping desiderato nel set di risultati.Note the value of mapping_id for the desired mapping in the result set.

  3. In un database del database di distribuzione eseguire sp_setdefaultdatatypemapping.At the Distributor on any database, execute sp_setdefaultdatatypemapping.

    • Se si conosce il valore desiderato di mapping_id ottenuto nel passaggio 2, specificarlo per @mapping_id.If you know the desired value of mapping_id obtained in step 2, specify it for @mapping_id.

    • Se non si conosce il valore di mapping_id, specificare i parametri @source_dbms, @source_type, @destination_dbms, @destination_typee qualsiasi altro parametro necessario per identificare un mapping esistente.If you do not know the mapping_id, specify the parameters @source_dbms, @source_type, @destination_dbms, @destination_type, and any other parameters required to identify an existing mapping.

Per trovare tipi di dati validi per un determinato tipo di dati OracleTo find valid data types for a given Oracle data type

  1. In un database del server di distribuzione eseguire sp_helpdatatypemap.At the Distributor on any database, execute sp_helpdatatypemap. Specificare il valore ORACLE per @source_dbms e qualsiasi altro parametro necessario per filtrare il set di risultati.Specify a value of ORACLE for @source_dbms and any other parameters needed to filter the result set.

Esempi (Transact-SQL) Examples (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 SQL ServerSQL Server (38,38) di ssNoVersionanziché al tipo di dati predefinito float.This example changes a column with an Oracle data type of NUMBER so it is mapped to SQL ServerSQL Server data type numeric(38,38), instead of the default data type 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.This example query returns the default and alternative mappings for the Oracle 9 data type CHAR.

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.This example query returns the default mappings for the Oracle 9 data type NUMBER when it is specified without a scale or precision.

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

Vedere ancheSee Also

Data Type Mapping for Oracle Publishers Data Type Mapping for Oracle Publishers
Replica di database eterogenei Heterogeneous Database Replication
Replication System Stored Procedures Concepts Replication System Stored Procedures Concepts
Configurare un server di pubblicazione Oracle Configure an Oracle Publisher