Указание сопоставления типов данных для издателя Oracle

Применимо к:SQL Server

В этом разделе описывается, как указать сопоставления типов данных для издателя Oracle в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Хотя в списке для издателей Oracle имеется набор сопоставлений типов данных, для отдельных публикаций может потребоваться создание дополнительных сопоставлений.

В этом разделе

Использование среды SQL Server Management Studio

Укажите сопоставления типов данных на вкладке "Сопоставление данных" диалогового окна "Свойства статьи — <статья> ". Это доступно на странице статей мастера создания публикаций и диалогового окна "Свойства публикации — <публикация> ". Дополнительные сведения об использовании мастера и доступе к этому диалоговому окну см. в статьях Создание публикации из базы данных Oracle и Просмотр и изменение свойств публикации.

Указание сопоставления типов данных

  1. На странице статей мастера создания публикации или диалогового окна "Свойства публикации — публикация>" <выберите таблицу и щелкните "Свойства статьи".

  2. Щелкните Указать свойства выделенной статьи таблицы.

  3. На вкладке "Сопоставление данных" диалогового окна "Свойства статьи">< выберите сопоставления из столбца "Тип данных подписчика":

    • Для некоторых типов данных существует только одно возможное сопоставление, при этом столбец в сетке свойств доступен только для чтения.

    • Для некоторых типов данных можно осуществить выбор из нескольких типов. Корпорация Майкрософт рекомендует использовать сопоставление по умолчанию, если приложение не требует другого сопоставления. Дополнительные сведения см. в статье Data Type Mapping for Oracle Publishers.

  4. Нажмите ОК.

Использование Transact-SQL

Пользовательские сопоставления типов данных могут быть заданы программно с помощью хранимых процедур репликации. Можно также задать сопоставления по умолчанию, которые используются при сопоставлении типов данных между Microsoft SQL Server и системой управления базами данных, отличной от SQL Server (СУБД). Дополнительные сведения см. в статье Data Type Mapping for Oracle Publishers.

Определение пользовательского сопоставления данных при создании статьи, принадлежащей публикации Oracle

  1. Если публикация Oracle не существует, ее необходимо создать.

  2. На распространителе выполните хранимую процедуру sp_addarticle. В параметре @use_default_datatypes укажите значение 0. Дополнительные сведения см. в статье определить статью.

  3. Чтобы просмотреть существующие сопоставления для столбца в опубликованной статье, выполните хранимую процедуру sp_helparticlecolumns .

  4. На распространителе выполните хранимую процедуру sp_changearticlecolumndatatype. Чтобы определить опубликованный столбец, укажите имя издателя Oracle в параметре @publisherи задайте значения параметров @publication, @articleи @column . Укажите имя типа данных SQL Server для сопоставления с @type, а также @length, @precision и @scale, где это применимо.

  5. На распространителе выполните хранимую процедуру sp_articleview. Она создаст представление, используемое для создания моментального снимка из публикации Oracle.

Назначение для типа данных сопоставления по умолчанию

  1. (Необязательно) На распространителе в любой базе данных выполните хранимую процедуру sp_getdefaultdatatypemapping. Укажите значения параметров @source_dbms, @source_type, @destination_dbms, @destination_versionи других параметров, необходимых для идентификации базы данных-источника. Сведения о текущем сопоставлении типа данных в целевой базе данных возвращаются в выходных параметрах.

  2. На распространителе в любой базе данных выполните хранимую процедуру sp_helpdatatypemap(необязательно). Укажите значение параметра @source_dbms и других параметров, необходимых для фильтрации результирующего набора. В результирующем наборе просмотрите значение параметра mapping_id для текущего сопоставления.

  3. На распространителе в любой базе данных выполните хранимую процедуру sp_setdefaultdatatypemapping(необязательно).

    • Если известно необходимое значение параметра mapping_id , полученное на шаге 2, укажите его в параметре @mapping_id.

    • Если значение mapping_idнеизвестно, то необходимо указать значения параметров @source_dbms, @source_type, @destination_dbms, @destination_typeи других параметров, необходимых для идентификации существующего сопоставления.

Определение допустимых типов данных, соответствующих типу данных Oracle

  1. На распространителе в любой базе данных выполните хранимую процедуру sp_helpdatatypemap. Укажите значение ORACLE в параметре @source_dbms и задайте значения других параметров, необходимых для фильтрации результирующего набора.

Примеры (Transact-SQL)

В этом примере изменяется столбец с типом данных Oracle NU МБ ER, поэтому он сопоставляется с числовым типом данных SQL Server (38 38 38), а не с плавающей запятой типа данных по умолчанию.

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

Следующий пример запроса возвращает два сопоставления для типа данных Oracle 9 CHAR: определенное по умолчанию и альтернативное.

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

Следующий пример запроса возвращает сопоставления по умолчанию для типа данных Oracle 9 NUMBER , когда он указан без масштаба и точности.

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

См. также

Сопоставление типов данных для издателей Oracle
Разнородная репликация базы данных
Replication System Stored Procedures Concepts
Настройка издателя Oracle