Поделиться через


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

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

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

  • Для указания сопоставления типов данных для издателя Oracle используется:

    Среда SQL Server Management Studio

    Transact-SQL

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

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

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

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

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

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

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

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

  4. Нажмите кнопку ОК.  

Значок стрелки, используемый со ссылкой «В начало»[Top]

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

Пользовательские сопоставления типов данных могут быть заданы программно с помощью хранимых процедур репликации. Кроме того, можно задать сопоставления данных по умолчанию, которые будут использоваться при сопоставлении типов данных между базами данных Microsoft SQL Server и базами данных других поставщиков. Дополнительные сведения см. в разделе Сопоставление типов данных для издателей Oracle.

Определение пользовательского сопоставления данных при создании статьи, принадлежащей публикации 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

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

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

Следующий пример производит сопоставление столбца данных Oracle типа NUMBER с типом данных SQL Server numeric(38,38) вместо типа данных float, используемого по умолчанию.

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

Значок стрелки, используемый со ссылкой «В начало»[Top]

См. также

Основные понятия

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

Разнородная репликация базы данных

Основные понятия системных хранимых процедур репликации

Настройка издателя Oracle