PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Migracja bazy danych z Postgres do MS SQL Server

Metadane zwrócone przez sterownik ODBC PostgreSQL nie są poprawnie mapowane przez plik SSMS ProviderDescriptors.xml. Ten plik znajduje się w katalogu „C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\ProviderDescriptors” w mojej instalacji programu SSMS.

Korzystanie z informacji zebranych z tego pytania i post na blogu MS , udało mi się pomyślnie zaimportować z PostgreSQL za pomocą System.Data.Odbc.OdbcConnection ProviderDescriptor sekcja konfiguracji poniżej. Zmieniłem MaximumLengthColumnName , NumericPrecisionColumnName i NumericScaleColumnName wartości atrybutów w System.Data.Odbc.OdbcConnection ColumnSchemaAttributes aby dopasować rzeczywiste nazwy zwracane przez sterownik ODBC PosgreSQL (LENGTH i 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>

Możesz zapisać oryginalny plik ProviderDescriptors.xml plik i powróć do niego po zakończeniu zadań importu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa POSITION() w PostgreSQL

  2. Twórz tablicę postgres niestandardowych domen

  3. nie można połączyć się z serwerem dla Postgres

  4. Czy PL/pgSQL i SQL w PostgreSQL są na tym samym poziomie co standard SQL/PSM, a nie tylko jako standard SQL?

  5. Jak sprawdzić, czy wiersz istnieje w procedurze składowanej PostgreSQL?