Jak Określ typ danych mapowania dla Wydawca Oracle (Programowanie replikacji Transact-SQL)

Chociaż zestaw domyślne mapowania typu danych są dostępne dla wydawców Oracle, może być konieczne określenie różnych mapowania dla danej publikacja.Można określić niestandardowe dane typu mapowania programowo za pomocą procedur przechowywanych replikacja.You can also set the default mappings that are used when mapping data types between Microsoft SQL Server and a non-SQL Server database management system (DBMS).Aby uzyskać więcej informacji, zobacz Mapowanie typu danych dla wydawców Oracle.

Aby zdefiniować mapowania typu danych niestandardowych podczas tworzenia artykuł należące do publikacja Oracle

  1. Jeśli jeszcze nie istnieje, Utwórz publikacja Oracle.Aby uzyskać więcej informacji, zobacz Jak Tworzenie publikacji z bazą danych Oracle (Programowanie replikacji Transact-SQL).

  2. wykonać na Dystrybutor, sp_addarticle.Określ wartość 0 dla @ use_default_datatypes.Aby uzyskać więcej informacji, zobacz Jak Definiowanie artykuł (Programowanie replikacji Transact-SQL).

  3. wykonać na Dystrybutor, sp_helparticlecolumns Aby wyświetlić istniejące mapowanie kolumna opublikowanego artykuł.

  4. wykonać na Dystrybutor, sp_changearticlecolumndatatype.Określ nazwę wydawcy Oracle Wydawca @, jak również publikacja @, @ artykuł, i kolumna @ do zdefiniowania kolumna opublikowane.Określ nazwę SQL Server Typ danych mapowania dla typu @, jak również @ długość, @ precision, i @ skali, gdzie stosowne.

  5. wykonać na Dystrybutor, sp_articleview.Tworzy widok używany do generowania migawka z publikacja programu Oracle.

Aby określić mapowanie jako domyślnego mapowania typu danych

  1. (Opcjonalnie) U dystrybutora na dowolnej bazy danych, należy wykonać sp_getdefaultdatatypemapping.Określ @ source_dbms, @ source_type, @ destination_dbms, @ destination_versioni inne parametry potrzebne do identyfikacji źródło DBMS.Informacje o typie danych aktualnie mapowana w obiekt docelowy systemu DBMS jest zwracane przy użyciu parametrów wyjściowych.

  2. (Opcjonalnie) U dystrybutora na dowolnej bazy danych, należy wykonać sp_helpdatatypemap.Określ @ source_dbms i innych parametrów wymaganych do filtrowania zestaw wyników.Zanotuj wartość mapping_id żądane mapowanie w zestaw wyników.

  3. U dystrybutora na dowolnej bazy danych, należy wykonać sp_setdefaultdatatypemapping.

    • Jeśli znasz żądaną wartość mapping_id uzyskanym w kroku 2, określenie dla @ mapping_id.

    • Jeśli nie znasz mapping_id, określić parametrów @ source_dbms, @ source_type, @ destination_dbms, @ destination_typei inne parametry wymagane w celu zidentyfikowania istniejącego mapowania.

Aby znaleźć prawidłowymi typami danych dla danego typu danych Oracle

  • U dystrybutora na dowolnej bazy danych, należy wykonać sp_helpdatatypemap.Określ wartość ORACLE dla @ source_dbms i innych parametrów wymaganych do filtrowania zestaw wyników.

Przykład

W tym przykładzie zmienione kolumna o typie danych Oracle liczby tak jest mapowany do SQL Server Typ danych numeric(38,38) zamiast pływak typ danych domyślnych.

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

Ta przykładowa kwerenda zwraca domyślne i alternatywne mapowania typu danych CHAR Oracle 9.

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

Ta przykładowa kwerenda zwraca domyślne mapowania typu danych Oracle 9 numer, gdy zostanie podana bez precyzji lub skali.

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