sql >> Database >  >> RDS >> PostgreSQL

Migratie van database van Postgres naar MS SQL Server

De metagegevens die door het PostgreSQL ODBC-stuurprogramma worden geretourneerd, worden niet correct toegewezen door het bestand SSMS ProviderDescriptors.xml. Dit bestand bevindt zich in de map "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\ProviderDescriptors" op mijn SSMS-installatie.

Met behulp van informatie verkregen uit deze vraag en MS blogbericht , kon ik met succes importeren uit PostgreSQL met de System.Data.Odbc.OdbcConnection ProviderDescriptor config-sectie hieronder. Ik heb de MaximumLengthColumnName . gewijzigd , NumericPrecisionColumnName , en NumericScaleColumnName attribuutwaarden in de System.Data.Odbc.OdbcConnection ColumnSchemaAttributes om overeen te komen met de werkelijke namen die worden geretourneerd door het PosgreSQL ODBC-stuurprogramma (LENGTH , en PRECISION , SCALE ).

<dtm:ProviderDescriptor SourceType="System.Data.Odbc.OdbcConnection">

    <dtm:SchemaNames
        TablesSchemaName="Tables"
        ColumnsSchemaName="Columns" 
        ViewsSchemaName="Views" 
    />

    <dtm:TableSchemaAttributes
        TableCatalogColumnName="TABLE_CAT"
        TableSchemaColumnName="TABLE_SCHEM"
        TableNameColumnName="TABLE_NAME"
        TableTypeColumnName="TABLE_TYPE"
        TableDescriptor="TABLE"
        ViewDescriptor="VIEW"
        SynonymDescriptor ="SYNONYM"
        NumberOfTableRestrictions="3"
    />

    <dtm:ColumnSchemaAttributes
        NameColumnName = "COLUMN_NAME"
        OrdinalPositionColumnName="ORDINAL_POSITION"
        DataTypeColumnName = "TYPE_NAME"
        MaximumLengthColumnName = "LENGTH"
        NumericPrecisionColumnName = "PRECISION"
        NumericScaleColumnName = "SCALE"
        NullableColumnName="NULLABLE"
        NumberOfColumnRestrictions="4"
    />

    <dtm:Literals
        PrefixQualifier="&quot;"
        SuffixQualifier="&quot;"
        CatalogSeparator="."
        SchemaSeparator="."
    />
</dtm:ProviderDescriptor>

Misschien wilt u de originele ProviderDescriptors.xml . bewaren bestand en keer ernaar terug zodra uw importtaken zijn voltooid.




  1. type afbeelding is niet ingesteld voor polymorfe associaties

  2. BEGIN - END blok atomaire transacties in PL/SQL

  3. verschil tussen UNHEX en X (MySQL)

  4. Hoe een onopgelost extern symbool te repareren vanwege MySql Connector C++?