Aracılığıyla paylaş


Nasıl yapılır: Bir Oracle Yayımcı (çoğaltma Transact-SQL programlama) için veri türü eşleştirmeleri belirtin

Oracle yayımcılar için bir varsayılan veri türü eşlemeleri küme sağlanan en rağmen belirli bir yayın için farklı eşlemeleri belirtmek gerekli olabilir.Özel veri türü eşlemeleri programlı olarak çoğaltma depolanmış yordamları kullanarak belirtebilirsiniz.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).Daha fazla bilgi için bkz: Oracle yayımcılar için veri türü eşleştirme.

Bir Oracle yayın ait bir makale oluştururken, özel veri türü eşlemeleri tanımlamak için

  1. Biri zaten mevcut değilse, Oracle yayın oluşturun.Daha fazla bilgi için bkz: Nasıl yapılır: Oracle veritabanından (çoğaltma Transact-SQL programlama) bir yayın oluştur.

  2. Dağıtıcıda yürütmek sp_addarticle.Bir değer belirtmek 0 için @ use_default_datatypes.Daha fazla bilgi için bkz: Nasıl yapılır: Bir makalesi (çoğaltma Transact-SQL programlama) tanımla.

  3. Dağıtıcıda yürütmek sp_helpmakalesütun yayımlanan bir sütun için varolan eşlemeyi görüntülemek için makale.

  4. Dağıtıcıda yürütmek sp_changearticlecolumndatatype.Oracle yayımcının adını belirtmek @ Yayımcı, yanı @ yayın, @ makale, ve @ sütun yayımlanmış sütun tanımlamak için.Adını belirtmek SQL Server eşlemek için için veri türü @ türü, yanı @ uzunluğu, @ precision, ve @ Ölçek, uygun bir yerde.

  5. Dağıtıcıda yürütmek sp_articleview.Bu Oracle'dan anlık görüntü görüntüsünü oluşturmak için kullanılan görünüm oluşturur yayın.

Bir veri türü için varsayılan eşleme olarak bir eşlemeyi belirtmek için

  1. (İsteğe bağlı) Herhangi bir veritabanı üzerinde dağıtımcı yürütmek sp_getdefaultdatatypemapping.Belirtmek @ source_dbms, @ source_type, @ destination_dbms, @ destination_versionve kaynak dbms tanımlamak için gereken diğer parametreleri.Çıkış parametreleri kullanarak hedef dbms şu anda eşlenen veri türü hakkında bilgi verilir.

  2. (İsteğe bağlı) Herhangi bir veritabanı üzerinde dağıtımcı yürütmek sp_helpdatatypemap.Belirtmek @ source_dbms ve filtre uygulamak için gerekli parametrelerin sonuç küme.Not değeri mapping_id içinde istenen eşleme için sonuç küme.

  3. Herhangi bir veritabanı üzerinde dağıtımcı yürütmek sp_setdefaultdatatypemapping.

    • İstenen değerini biliyorsanız, mapping_id 2. adımda elde, onu belirtmek @ mapping_id.

    • Biliyorsanız, mapping_id, parametrelerini belirtmek @ source_dbms, @ source_type, @ destination_dbms, @ destination_typeve varolan bir eşleme tanımlamak için gerekli parametreleri.

Belirli bir Oracle veri türü için geçerli veri türlerini bulmak için

  • Herhangi bir veritabanı üzerinde dağıtımcı yürütmek sp_helpdatatypemap.Bir değer belirtmek oracle için @ source_dbms ve filtre uygulamak için gerekli parametrelerin sonuç küme.

Örnek

Bu örnek değiştirir bir sütun sayının eşlendiği için Oracle veri türü olan SQL Server veri türü numeric(38,38), yerine varsayılan veri türü float.

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

Bu örnek sorgu Oracle 9 veri türünü char için varsayılan ve alternatif eşlemeleri döndürür.

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

Bir ölçek veya duyarlık belirtildiğinde Bu örnek sorgu sayısı 9 Oracle veri türü için varsayılan eşlemeleri döndürür.

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