PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Миграция на база данни от Postgres към MS SQL Server

Мета данните, върнати от драйвера на PostgreSQL ODBC, не са картографирани правилно от файла SSMS ProviderDescriptors.xml. Този файл се намира в директория "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\ProviderDescriptors" на моята SSMS инсталация.

Използване на информация, събрана от този въпрос и Публикация в блог на MS , успях успешно да импортирам от PostgreSQL с System.Data.Odbc.OdbcConnection ProviderDescriptor раздел за конфигурация по-долу. Промених MaximumLengthColumnName , NumericPrecisionColumnName и NumericScaleColumnName стойности на атрибути в System.Data.Odbc.OdbcConnection ColumnSchemaAttributes за да съответства на действителните имена, върнати от PosgreSQL ODBC драйвера (LENGTH и 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>

Може да искате да запазите оригиналния ProviderDescriptors.xml файл и се върнете към него, след като вашите задачи за импортиране приключат.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:Има ли функция, която ще преобразува base-10 int в base-36 низ?

  2. Използване на \COPY за зареждане на CSV с JSON полета в Postgres

  3. Heroku Postgres:psql:ФАТАЛНО:няма запис в pg_hba.conf за хост

  4. ГРЕШКА:не може да се регистрира файл XX.csv:Неизвестна грешка

  5. psql:ФАТАЛНО:не можа да отвори файлова база/11951/11717:файлова система само за четене